diff options
Diffstat (limited to 'dist/js')
-rw-r--r-- | dist/js/bootstrap.bundle.js | 211 | ||||
-rw-r--r-- | dist/js/bootstrap.bundle.js.map | 2 | ||||
-rw-r--r-- | dist/js/bootstrap.bundle.min.js | 2 | ||||
-rw-r--r-- | dist/js/bootstrap.bundle.min.js.map | 2 | ||||
-rw-r--r-- | dist/js/bootstrap.esm.js | 218 | ||||
-rw-r--r-- | dist/js/bootstrap.esm.js.map | 2 | ||||
-rw-r--r-- | dist/js/bootstrap.esm.min.js | 2 | ||||
-rw-r--r-- | dist/js/bootstrap.esm.min.js.map | 2 | ||||
-rw-r--r-- | dist/js/bootstrap.js | 211 | ||||
-rw-r--r-- | dist/js/bootstrap.js.map | 2 | ||||
-rw-r--r-- | dist/js/bootstrap.min.js | 2 | ||||
-rw-r--r-- | dist/js/bootstrap.min.js.map | 2 |
12 files changed, 303 insertions, 355 deletions
diff --git a/dist/js/bootstrap.bundle.js b/dist/js/bootstrap.bundle.js index 94580378f1..4e2541f91a 100644 --- a/dist/js/bootstrap.bundle.js +++ b/dist/js/bootstrap.bundle.js @@ -40,20 +40,35 @@ return obj; } - function _objectSpread(target) { + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + + return keys; + } + + function _objectSpread2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; - var ownKeys = Object.keys(source); - if (typeof Object.getOwnPropertySymbols === 'function') { - ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { - return Object.getOwnPropertyDescriptor(source, sym).enumerable; - })); + if (i % 2) { + ownKeys(source, true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(source).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); } - - ownKeys.forEach(function (key) { - _defineProperty(target, key, source[key]); - }); } return target; @@ -746,10 +761,6 @@ element = document.documentElement; } - if (typeof selector !== 'string') { - return null; - } - return find.call(element, selector); }, findOne: function findOne$1(selector, element) { @@ -757,29 +768,17 @@ element = document.documentElement; } - if (typeof selector !== 'string') { - return null; - } - return findOne.call(element, selector); }, children: function children(element, selector) { var _this = this; - if (typeof selector !== 'string') { - return null; - } - var children = makeArray(element.children); return children.filter(function (child) { return _this.matches(child, selector); }); }, parents: function parents(element, selector) { - if (typeof selector !== 'string') { - return null; - } - var parents = []; var ancestor = element.parentNode; @@ -794,17 +793,9 @@ return parents; }, closest: function closest$1(element, selector) { - if (typeof selector !== 'string') { - return null; - } - return closest.call(element, selector); }, prev: function prev(element, selector) { - if (typeof selector !== 'string') { - return null; - } - var siblings = []; var previous = element.previousSibling; @@ -919,8 +910,8 @@ } var transitionDuration = getTransitionDurationFromElement(element); - EventHandler.one(element, TRANSITION_END, function (event) { - return _this._destroyElement(element, event); + EventHandler.one(element, TRANSITION_END, function () { + return _this._destroyElement(element); }); emulateTransitionEnd(element, transitionDuration); }; @@ -986,6 +977,8 @@ * add .alert to jQuery only if jQuery is present */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT = jQuery.fn[NAME]; jQuery.fn[NAME] = Alert._jQueryInterface; @@ -1140,7 +1133,6 @@ if (!data) { data = new Button(button); - Data.setData(button, DATA_KEY$1, data); } data.toggle(); @@ -1166,6 +1158,8 @@ * add .button to jQuery only if jQuery is present */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$1 = jQuery.fn[NAME$1]; jQuery.fn[NAME$1] = Button._jQueryInterface; @@ -1221,7 +1215,7 @@ return {}; } - var attributes = _objectSpread({}, element.dataset); + var attributes = _objectSpread2({}, element.dataset); Object.keys(attributes).forEach(function (key) { attributes[key] = normalizeData(attributes[key]); @@ -1464,7 +1458,7 @@ ; _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default, config); + config = _objectSpread2({}, Default, {}, config); typeCheckConfig(NAME$2, config, DefaultType); return config; }; @@ -1507,7 +1501,7 @@ }); } - if (this._config.touch) { + if (this._config.touch && this._touchSupported) { this._addTouchEventListeners(); } }; @@ -1515,10 +1509,6 @@ _proto._addTouchEventListeners = function _addTouchEventListeners() { var _this3 = this; - if (!this._touchSupported) { - return; - } - var start = function start(event) { if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) { _this3.touchStartX = event.clientX; @@ -1767,10 +1757,10 @@ Carousel._carouselInterface = function _carouselInterface(element, config) { var data = Data.getData(element, DATA_KEY$2); - var _config = _objectSpread({}, Default, Manipulator.getDataAttributes(element)); + var _config = _objectSpread2({}, Default, {}, Manipulator.getDataAttributes(element)); if (typeof config === 'object') { - _config = _objectSpread({}, _config, config); + _config = _objectSpread2({}, _config, {}, config); } var action = typeof config === 'string' ? config : _config.slide; @@ -1812,7 +1802,7 @@ return; } - var config = _objectSpread({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this)); + var config = _objectSpread2({}, Manipulator.getDataAttributes(target), {}, Manipulator.getDataAttributes(this)); var slideIndex = this.getAttribute('data-slide-to'); @@ -1869,6 +1859,8 @@ * add .carousel to jQuery only if jQuery is present */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$2 = jQuery.fn[NAME$2]; jQuery.fn[NAME$2] = Carousel._jQueryInterface; @@ -2145,7 +2137,7 @@ ; _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default$1, config); + config = _objectSpread2({}, Default$1, {}, config); config.toggle = Boolean(config.toggle); // Coerce string values typeCheckConfig(NAME$3, config, DefaultType$1); @@ -2174,7 +2166,10 @@ var selector = "[data-toggle=\"collapse\"][data-parent=\"" + parent + "\"]"; makeArray(SelectorEngine.find(selector, parent)).forEach(function (element) { - _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]); + var selector = getSelectorFromElement(element); + var selected = selector ? SelectorEngine.findOne(selector) : null; + + _this3._addAriaAndCollapsedClass(selected, [element]); }); return parent; }; @@ -2198,15 +2193,10 @@ } // Static ; - Collapse._getTargetFromElement = function _getTargetFromElement(element) { - var selector = getSelectorFromElement(element); - return selector ? SelectorEngine.findOne(selector) : null; - }; - Collapse._collapseInterface = function _collapseInterface(element, config) { var data = Data.getData(element, DATA_KEY$3); - var _config = _objectSpread({}, Default$1, Manipulator.getDataAttributes(element), typeof config === 'object' && config ? config : {}); + var _config = _objectSpread2({}, Default$1, {}, Manipulator.getDataAttributes(element), {}, typeof config === 'object' && config ? config : {}); if (!data && _config.toggle && /show|hide/.test(config)) { _config.toggle = false; @@ -2291,6 +2281,8 @@ * add .collapse to jQuery only if jQuery is present */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$3 = jQuery.fn[NAME$3]; jQuery.fn[NAME$3] = Collapse._jQueryInterface; @@ -5155,21 +5147,15 @@ }; _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, this.constructor.Default, Manipulator.getDataAttributes(this._element), config); + config = _objectSpread2({}, this.constructor.Default, {}, Manipulator.getDataAttributes(this._element), {}, config); typeCheckConfig(NAME$4, config, this.constructor.DefaultType); return config; }; _proto._getMenuElement = function _getMenuElement() { - if (!this._menu) { - var parent = Dropdown._getParentFromElement(this._element); - - if (parent) { - this._menu = SelectorEngine.findOne(Selector$4.MENU, parent); - } - } + var parent = Dropdown._getParentFromElement(this._element); - return this._menu; + return SelectorEngine.findOne(Selector$4.MENU, parent); }; _proto._getPlacement = function _getPlacement() { @@ -5204,7 +5190,7 @@ if (typeof this._config.offset === 'function') { offset.fn = function (data) { - data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {}); + data.offsets = _objectSpread2({}, data.offsets, {}, _this2._config.offset(data.offsets, _this2._element) || {}); return data; }; } else { @@ -5436,6 +5422,8 @@ * add .dropdown to jQuery only if jQuery is present */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$4 = jQuery.fn[NAME$4]; jQuery.fn[NAME$4] = Dropdown._jQueryInterface; @@ -5592,7 +5580,7 @@ var hideEvent = EventHandler.trigger(this._element, Event$6.HIDE); - if (!this._isShown || hideEvent.defaultPrevented) { + if (hideEvent.defaultPrevented) { return; } @@ -5655,7 +5643,7 @@ ; _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default$3, config); + config = _objectSpread2({}, Default$3, {}, config); typeCheckConfig(NAME$5, config, DefaultType$3); return config; }; @@ -5735,7 +5723,7 @@ _this5.hide(); } }); - } else if (!this._isShown) { + } else { EventHandler.off(this._element, Event$6.KEYDOWN_DISMISS); } }; @@ -5744,8 +5732,8 @@ var _this6 = this; if (this._isShown) { - EventHandler.on(window, Event$6.RESIZE, function (event) { - return _this6.handleUpdate(event); + EventHandler.on(window, Event$6.RESIZE, function () { + return _this6._adjustDialog(); }); } else { EventHandler.off(window, Event$6.RESIZE); @@ -5775,11 +5763,9 @@ }; _proto._removeBackdrop = function _removeBackdrop() { - if (this._backdrop) { - this._backdrop.parentNode.removeChild(this._backdrop); + this._backdrop.parentNode.removeChild(this._backdrop); - this._backdrop = null; - } + this._backdrop = null; }; _proto._showBackdrop = function _showBackdrop(callback) { @@ -5819,10 +5805,6 @@ this._backdrop.classList.add(ClassName$5.SHOW); - if (!callback) { - return; - } - if (!animate) { callback(); return; @@ -5837,9 +5819,7 @@ var callbackRemove = function callbackRemove() { _this8._removeBackdrop(); - if (callback) { - callback(); - } + callback(); }; if (this._element.classList.contains(ClassName$5.FADE)) { @@ -5850,7 +5830,7 @@ } else { callbackRemove(); } - } else if (callback) { + } else { callback(); } } // ---------------------------------------------------------------------- @@ -5956,7 +5936,7 @@ return this.each(function () { var data = Data.getData(this, DATA_KEY$5); - var _config = _objectSpread({}, Default$3, Manipulator.getDataAttributes(this), typeof config === 'object' && config ? config : {}); + var _config = _objectSpread2({}, Default$3, {}, Manipulator.getDataAttributes(this), {}, typeof config === 'object' && config ? config : {}); if (!data) { data = new Modal(this, _config); @@ -6002,14 +5982,8 @@ EventHandler.on(document, Event$6.CLICK_DATA_API, Selector$5.DATA_TOGGLE, function (event) { var _this10 = this; - var target; var selector = getSelectorFromElement(this); - - if (selector) { - target = SelectorEngine.findOne(selector); - } - - var config = Data.getData(target, DATA_KEY$5) ? 'toggle' : _objectSpread({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this)); + var target = SelectorEngine.findOne(selector); if (this.tagName === 'A' || this.tagName === 'AREA') { event.preventDefault(); @@ -6030,6 +6004,8 @@ var data = Data.getData(target, DATA_KEY$5); if (!data) { + var config = _objectSpread2({}, Manipulator.getDataAttributes(target), {}, Manipulator.getDataAttributes(this)); + data = new Modal(target, config); } @@ -6039,8 +6015,11 @@ * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ + * add .modal to jQuery only if jQuery is present */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$5 = jQuery.fn[NAME$5]; jQuery.fn[NAME$5] = Modal._jQueryInterface; @@ -6165,7 +6144,7 @@ }; for (var i = 0, len = elements.length; i < len; i++) { - var _ret = _loop(i, len); + var _ret = _loop(i); if (_ret === "continue") continue; } @@ -6394,7 +6373,7 @@ var attachment = this._getAttachment(placement); - this.addAttachmentClass(attachment); + this._addAttachmentClass(attachment); var container = this._getContainer(); @@ -6463,7 +6442,7 @@ } }; - _proto.hide = function hide(callback) { + _proto.hide = function hide() { var _this2 = this; var tip = this.getTipElement(); @@ -6479,13 +6458,7 @@ EventHandler.trigger(_this2.element, _this2.constructor.Event.HIDDEN); - if (_this2._popper !== null) { - _this2._popper.destroy(); - } - - if (callback) { - callback(); - } + _this2._popper.destroy(); }; var hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE); @@ -6529,10 +6502,6 @@ return Boolean(this.getTitle()); }; - _proto.addAttachmentClass = function addAttachmentClass(attachment) { - this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment); - }; - _proto.getTipElement = function getTipElement() { if (this.tip) { return this.tip; @@ -6556,7 +6525,7 @@ return; } - if (typeof content === 'object' && (content.nodeType || content.jquery)) { + if (typeof content === 'object' && isElement(content)) { if (content.jquery) { content = content[0]; } // content is a DOM node or a jQuery @@ -6596,6 +6565,10 @@ } // Private ; + _proto._addAttachmentClass = function _addAttachmentClass(attachment) { + this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment); + }; + _proto._getOffset = function _getOffset() { var _this3 = this; @@ -6603,7 +6576,7 @@ if (typeof this.config.offset === 'function') { offset.fn = function (data) { - data.offsets = _objectSpread({}, data.offsets, _this3.config.offset(data.offsets, _this3.element) || {}); + data.offsets = _objectSpread2({}, data.offsets, {}, _this3.config.offset(data.offsets, _this3.element) || {}); return data; }; } else { @@ -6659,7 +6632,7 @@ EventHandler.on(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', this._hideModalHandler); if (this.config.selector) { - this.config = _objectSpread({}, this.config, { + this.config = _objectSpread2({}, this.config, { trigger: 'manual', selector: '' }); @@ -6764,7 +6737,7 @@ config.container = config.container[0]; } - config = _objectSpread({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {}); + config = _objectSpread2({}, this.constructor.Default, {}, dataAttributes, {}, typeof config === 'object' && config ? config : {}); if (typeof config.delay === 'number') { config.delay = { @@ -6823,7 +6796,7 @@ this._cleanTipClass(); - this.addAttachmentClass(this._getAttachment(popperData.placement)); + this._addAttachmentClass(this._getAttachment(popperData.placement)); }; _proto._fixTransition = function _fixTransition() { @@ -6916,6 +6889,8 @@ * add .tooltip to jQuery only if jQuery is present */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$6 = jQuery.fn[NAME$6]; @@ -6941,14 +6916,14 @@ var CLASS_PREFIX$1 = 'bs-popover'; var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g'); - var Default$5 = _objectSpread({}, Tooltip.Default, { + var Default$5 = _objectSpread2({}, Tooltip.Default, { placement: 'right', trigger: 'click', content: '', template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>' }); - var DefaultType$5 = _objectSpread({}, Tooltip.DefaultType, { + var DefaultType$5 = _objectSpread2({}, Tooltip.DefaultType, { content: '(string|element|function)' }); @@ -7109,6 +7084,8 @@ * ------------------------------------------------------------------------ */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$7 = jQuery.fn[NAME$7]; @@ -7252,7 +7229,7 @@ ; _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default$6, typeof config === 'object' && config ? config : {}); + config = _objectSpread2({}, Default$6, {}, typeof config === 'object' && config ? config : {}); if (typeof config.target !== 'string') { var id = config.target.id; @@ -7423,6 +7400,8 @@ * ------------------------------------------------------------------------ */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$8 = jQuery.fn[NAME$8]; jQuery.fn[NAME$8] = ScrollSpy._jQueryInterface; @@ -7660,6 +7639,8 @@ * add .tab to jQuery only if jQuery is present */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$9 = jQuery.fn[NAME$9]; jQuery.fn[NAME$9] = Tab._jQueryInterface; @@ -7760,6 +7741,8 @@ this._element.classList.remove(ClassName$a.HIDE); + reflow(this._element); + this._element.classList.add(ClassName$a.SHOWING); if (this._config.animation) { @@ -7817,7 +7800,7 @@ ; _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default$7, Manipulator.getDataAttributes(this._element), typeof config === 'object' && config ? config : {}); + config = _objectSpread2({}, Default$7, {}, Manipulator.getDataAttributes(this._element), {}, typeof config === 'object' && config ? config : {}); typeCheckConfig(NAME$a, config, this.constructor.DefaultType); return config; }; @@ -7881,6 +7864,8 @@ * add .toast to jQuery only if jQuery is present */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$a = jQuery.fn[NAME$a]; diff --git a/dist/js/bootstrap.bundle.js.map b/dist/js/bootstrap.bundle.js.map index 6fdcb2750b..f35abeba06 100644 --- a/dist/js/bootstrap.bundle.js.map +++ b/dist/js/bootstrap.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"bootstrap.bundle.js","sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/event-handler.js","../../js/src/dom/selector-engine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\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 if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\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 const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\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 static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.15.0\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';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\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\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['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 return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\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\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (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\n\n\n\n\nvar defineProperty = function (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/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } 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 };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (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\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\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 if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\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 }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(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\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).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\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\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\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/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\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 var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _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\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\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/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // 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 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 var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\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 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 return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('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\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['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'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\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/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = 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\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\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\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 if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\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 return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(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 }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\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 if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\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\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(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/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function 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.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function 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/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\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 };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_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 });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\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 /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\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/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n SelectorEngine.findOne(Selector.DATA_TOGGLE, parent).focus()\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n this._hideModalHandler\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = EventHandler.trigger(this._element, Event.SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","cEvent","CustomEvent","bubbles","cancelable","detail","initCustomEvent","workingDefaultPrevented","e","preventDefault","defaultPrevented","origPreventDefault","Event","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","uidEventList","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","NODE_TEXT","SelectorEngine","findFn","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","SHOWING","autohide","Toast"],"mappings":"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Cd,CAAC;;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,SAAS,GAAG;EAChB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,MAAM,EAAE;EACV;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,MAAM;EACd;EACA;EACA;EACA,IAAI,MAAM,EAAE,CAAC;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE;EACnB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,eAAe;EACvB;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;EAChD;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,cAAc;EACrC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb;EACA,IAAI,OAAO,EAAE,WAAW;EACxB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,MAAM;EACpB;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,UAAU;EACjC;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,cAAc,EAAE,KAAK;EACzB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,uBAAuB,EAAE,KAAK;EAClC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,KAAK;EAClB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,IAAI;EACzB;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,QAAQ;EACf;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,OAAO;EACd,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,UAAU,EAAE;EACd;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,UAAU;EAClB;EACA,IAAI,MAAM,EAAE,gBAAgB;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,SAAS;EAC9B,GAAG;EACH,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,GAAG;EACf;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,QAAQ;;EAErB;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,KAAK;;EAEtB;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,IAAI;;EAErB;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE,KAAK;;EAExB;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;;EAElC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;;EAElC;EACA;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,SAAS;EACtB,CAAC,CAAC;;EAEF;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;;EAEA;EACA;EACA,IAAI,MAAM,GAAG,YAAY;EACzB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,S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"}
\ No newline at end of file +{"version":3,"file":"bootstrap.bundle.js","sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/event-handler.js","../../js/src/dom/selector-engine.js","../../js/src/alert/alert.js","../../js/src/button/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel/carousel.js","../../js/src/collapse/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown/dropdown.js","../../js/src/modal/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip/tooltip.js","../../js/src/popover/popover.js","../../js/src/scrollspy/scrollspy.js","../../js/src/tab/tab.js","../../js/src/toast/toast.js","../../js/index.umd.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n const siblings = []\n\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\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 if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\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 const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\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 static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n const selector = getSelectorFromElement(element)\n const selected = selector ? SelectorEngine.findOne(selector) : null\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.15.0\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';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\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\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['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 return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\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\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (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\n\n\n\n\nvar defineProperty = function (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/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } 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 };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (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\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\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 if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\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 }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(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\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).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\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\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\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/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\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 var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _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\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\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/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // 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 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 var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\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 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 return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('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\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['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'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\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/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = 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\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\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\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 if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\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 return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(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 }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\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 if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\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\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(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/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function 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.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function 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/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\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 };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_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 });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\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 /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\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/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n const parent = Dropdown._getParentFromElement(this._element)\n\n return SelectorEngine.findOne(Selector.MENU, parent)\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n SelectorEngine.findOne(Selector.DATA_TOGGLE, parent).focus()\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n const selector = getSelectorFromElement(this)\n const target = SelectorEngine.findOne(selector)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from '../util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from '../util/sanitizer'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide() {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n this._popper.destroy()\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n this._hideModalHandler\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport Data from '../dom/data'\nimport SelectorEngine from '../dom/selector-engine'\nimport Tooltip from '../tooltip/tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = EventHandler.trigger(this._element, Event.SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n reflow(this._element)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert/alert'\nimport Button from './src/button/button'\nimport Carousel from './src/carousel/carousel'\nimport Collapse from './src/collapse/collapse'\nimport Dropdown from './src/dropdown/dropdown'\nimport Modal from './src/modal/modal'\nimport Popover from './src/popover/popover'\nimport ScrollSpy from './src/scrollspy/scrollspy'\nimport Tab from './src/tab/tab'\nimport Toast from './src/toast/toast'\nimport Tooltip from './src/tooltip/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","cEvent","CustomEvent","bubbles","cancelable","detail","initCustomEvent","workingDefaultPrevented","e","preventDefault","defaultPrevented","origPreventDefault","Event","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","uidEventList","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","NODE_TEXT","SelectorEngine","findFn","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","hasWidth","jquery","selected","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","addAttachmentClass","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","SHOWING","autohide","Toast"],"mappings":"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I,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,MAAM;EACd;EACA;EACA;EACA,IAAI,MAAM,EAAE,CAAC;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE;EACnB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,eAAe;EACvB;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;EAChD;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,cAAc;EACrC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb;EACA,IAAI,OAAO,EAAE,WAAW;EACxB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,MAAM;EACpB;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,UAAU;EACjC;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,cAAc,EAAE,KAAK;EACzB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,uBAAuB,EAAE,KAAK;EAClC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,KAAK;EAClB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,IAAI;EACzB;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,QAAQ;EACf;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,OAAO;EACd,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,UAAU,EAAE;EACd;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,UAAU;EAClB;EACA,IAAI,MAAM,EAAE,gBAAgB;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,SAAS;EAC9B,GAAG;EACH,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;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"}
\ No newline at end of file diff --git a/dist/js/bootstrap.bundle.min.js b/dist/js/bootstrap.bundle.min.js index 1ac2a0784a..9f9a6b8ea0 100644 --- a/dist/js/bootstrap.bundle.min.js +++ b/dist/js/bootstrap.bundle.min.js @@ -3,5 +3,5 @@ * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).bootstrap=e()}(this,function(){"use strict";function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function e(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}function n(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{},o=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(i).filter(function(t){return Object.getOwnPropertyDescriptor(i,t).enumerable}))),o.forEach(function(e){n(t,e,i[e])})}return t}var o,r,s,a="transitionend",l=window.jQuery,c=function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},f=function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},u=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,o=parseFloat(n),r=parseFloat(i);return o||r?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},h=function(t){var e=document.createEvent("HTMLEvents");e.initEvent(a,!0,!0),t.dispatchEvent(e)},d=function(t){return(t[0]||t).nodeType},p=function(t,e){var n=!1,i=e+5;t.addEventListener(a,function e(){n=!0,t.removeEventListener(a,e)}),setTimeout(function(){n||h(t)},i)},g=function(t,e,n){Object.keys(n).forEach(function(i){var o,r=n[i],s=e[i],a=s&&d(s)?"element":(o=s,{}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+r+'".')})},m=function(t){return t?[].slice.call(t):[]},_=function(t){return!!t&&(!!(t.style&&t.parentNode&&t.parentNode.style)&&("none"!==t.style.display&&"none"!==t.parentNode.style.display&&"hidden"!==t.style.visibility))},v=function(){return function(){}},y=function(t){return t.offsetHeight},b=(o={},r=1,{set:function(t,e,n){"undefined"==typeof t.key&&(t.key={key:e,id:r},r++),o[t.key.id]=n},get:function(t,e){if(!t||"undefined"==typeof t.key)return null;var n=t.key;return n.key===e?o[n.id]:null},delete:function(t,e){if("undefined"!=typeof t.key){var n=t.key;n.key===e&&(delete o[n.id],delete t.key)}}}),E={setData:function(t,e,n){b.set(t,e,n)},getData:function(t,e){return b.get(t,e)},removeData:function(t,e){b.delete(t,e)}},w=Element.prototype,D=w.matches,T=w.closest,I=Element.prototype.querySelectorAll,A=Element.prototype.querySelector,O=function(t,e){return new CustomEvent(t,e)};if("function"!=typeof window.CustomEvent&&(O=function(t,e){e=e||{bubbles:!1,cancelable:!1,detail:null};var n=document.createEvent("CustomEvent");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n}),!((s=document.createEvent("CustomEvent")).initEvent("Bootstrap",!0,!0),s.preventDefault(),s.defaultPrevented)){var S=Event.prototype.preventDefault;Event.prototype.preventDefault=function(){this.cancelable&&(S.call(this),Object.defineProperty(this,"defaultPrevented",{get:function(){return!0},configurable:!0}))}}var L=function(){var t=O("Bootstrap",{cancelable:!0}),e=document.createElement("div");return e.addEventListener("Bootstrap",function(){return null}),t.preventDefault(),e.dispatchEvent(t),t.defaultPrevented}();D||(D=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),T||(T=function(t){var e=this;do{if(D.call(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null});var C=/:scope\b/;(function(){var t=document.createElement("div");try{t.querySelectorAll(":scope *")}catch(t){return!1}return!0})()||(I=function(t){if(!C.test(t))return this.querySelectorAll(t);var e=Boolean(this.id);e||(this.id=c("scope"));var n=null;try{t=t.replace(C,"#"+this.id),n=this.querySelectorAll(t)}finally{e||this.removeAttribute("id")}return n},A=function(t){if(!C.test(t))return this.querySelector(t);var e=I.call(this,t);return"undefined"!=typeof e[0]?e[0]:null});var N=/[^.]*(?=\..*)\.|.*/,k=/\..*/,P=/^key/,x=/::\d+$/,M={},H=1,j={mouseenter:"mouseover",mouseleave:"mouseout"},R=["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"];function W(t,e){return e&&e+"::"+H++||t.uidEvent||H++}function F(t){var e=W(t);return t.uidEvent=e,M[e]=M[e]||{},M[e]}function U(t,e){null===t.which&&P.test(t.type)&&(t.which=null===t.charCode?t.keyCode:t.charCode),t.delegateTarget=e}function B(t,e,n){void 0===n&&(n=null);for(var i=Object.keys(t),o=0,r=i.length;o<r;o++){var s=t[i[o]];if(s.originalHandler===e&&s.delegationSelector===n)return s}return null}function K(t,e,n){var i="string"==typeof e,o=i?n:e,r=t.replace(k,""),s=j[r];return s&&(r=s),R.indexOf(r)>-1||(r=t),[i,o,r]}function V(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var r=K(e,n,i),s=r[0],a=r[1],l=r[2],c=F(t),f=c[l]||(c[l]={}),u=B(f,a,s?n:null);if(u)u.oneOff=u.oneOff&&o;else{var h=W(a,e.replace(N,"")),d=s?function(t,e,n){return function i(o){for(var r=t.querySelectorAll(e),s=o.target;s&&s!==this;s=s.parentNode)for(var a=r.length;a--;)if(r[a]===s)return U(o,s),i.oneOff&&Q.off(t,o.type,n),n.apply(s,[o]);return null}}(t,n,i):function(t,e){return function n(i){return U(i,t),n.oneOff&&Q.off(t,i.type,e),e.apply(t,[i])}}(t,n);d.delegationSelector=s?n:null,d.originalHandler=a,d.oneOff=o,d.uidEvent=h,f[h]=d,t.addEventListener(l,d,s)}}}function Y(t,e,n,i,o){var r=B(e[n],i,o);r&&(t.removeEventListener(n,r,Boolean(o)),delete e[n][r.uidEvent])}var Q={on:function(t,e,n,i){V(t,e,n,i,!1)},one:function(t,e,n,i){V(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=K(e,n,i),r=o[0],s=o[1],a=o[2],l=a!==e,c=F(t),f="."===e.charAt(0);if("undefined"==typeof s){f&&Object.keys(c).forEach(function(n){!function(t,e,n,i){var o=e[n]||{};Object.keys(o).forEach(function(r){if(r.indexOf(i)>-1){var s=o[r];Y(t,e,n,s.originalHandler,s.delegationSelector)}})}(t,c,n,e.substr(1))});var u=c[a]||{};Object.keys(u).forEach(function(n){var i=n.replace(x,"");if(!l||e.indexOf(i)>-1){var o=u[n];Y(t,c,a,o.originalHandler,o.delegationSelector)}})}else{if(!c||!c[a])return;Y(t,c,a,s,r?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=e.replace(k,""),r=e!==o,s=R.indexOf(o)>-1,a=!0,c=!0,f=!1,u=null;return r&&"undefined"!=typeof l&&(i=l.Event(e,n),l(t).trigger(i),a=!i.isPropagationStopped(),c=!i.isImmediatePropagationStopped(),f=i.isDefaultPrevented()),s?(u=document.createEvent("HTMLEvents")).initEvent(o,a,!0):u=O(e,{bubbles:a,cancelable:!0}),"undefined"!=typeof n&&Object.keys(n).forEach(function(t){Object.defineProperty(u,t,{get:function(){return n[t]}})}),f&&(u.preventDefault(),L||Object.defineProperty(u,"defaultPrevented",{get:function(){return!0}})),c&&t.dispatchEvent(u),u.defaultPrevented&&"undefined"!=typeof i&&i.preventDefault(),u}},G={matches:function(t,e){return D.call(t,e)},find:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:I.call(e,t)},findOne:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:A.call(e,t)},children:function(t,e){var n=this;if("string"!=typeof e)return null;var i=m(t.children);return i.filter(function(t){return n.matches(t,e)})},parents:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.parentNode;return n},closest:function(t,e){return"string"!=typeof e?null:T.call(t,e)},prev:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.previousSibling;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.previousSibling;return n}},X="bs.alert",q="."+X,z={CLOSE:"close"+q,CLOSED:"closed"+q,CLICK_DATA_API:"click"+q+".data-api"},Z="alert",$="fade",J="show",tt=function(){function t(t){this._element=t,this._element&&E.setData(t,X,this)}var n=t.prototype;return n.close=function(t){var e=this._element;t&&(e=this._getRootElement(t));var n=this._triggerCloseEvent(e);null===n||n.defaultPrevented||this._removeElement(e)},n.dispose=function(){E.removeData(this._element,X),this._element=null},n._getRootElement=function(t){var e=f(t),n=!1;return e&&(n=G.findOne(e)),n||(n=G.closest(t,"."+Z)),n},n._triggerCloseEvent=function(t){return Q.trigger(t,z.CLOSE)},n._removeElement=function(t){var e=this;if(t.classList.remove(J),t.classList.contains($)){var n=u(t);Q.one(t,a,function(n){return e._destroyElement(t,n)}),p(t,n)}else this._destroyElement(t)},n._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),Q.trigger(t,z.CLOSED)},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,X);n||(n=new t(this)),"close"===e&&n[e](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},t._getInstance=function(t){return E.getData(t,X)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(Q.on(document,z.CLICK_DATA_API,'[data-dismiss="alert"]',tt._handleDismiss(new tt)),"undefined"!=typeof l){var et=l.fn.alert;l.fn.alert=tt._jQueryInterface,l.fn.alert.Constructor=tt,l.fn.alert.noConflict=function(){return l.fn.alert=et,tt._jQueryInterface}}var nt="bs.button",it="."+nt,ot="active",rt="btn",st="focus",at='[data-toggle^="button"]',lt='[data-toggle="buttons"]',ct='input:not([type="hidden"])',ft=".active",ut=".btn",ht={CLICK_DATA_API:"click"+it+".data-api",FOCUS_DATA_API:"focus"+it+".data-api",BLUR_DATA_API:"blur"+it+".data-api"},dt=function(){function t(t){this._element=t,E.setData(t,nt,this)}var n=t.prototype;return n.toggle=function(){var t=!0,e=!0,n=G.closest(this._element,lt);if(n){var i=G.findOne(ct,this._element);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(ot))t=!1;else{var o=G.findOne(ft,n);o&&o.classList.remove(ot)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(ot),Q.trigger(i,"change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(ot)),t&&this._element.classList.toggle(ot)},n.dispose=function(){E.removeData(this._element,nt),this._element=null},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,nt);n||(n=new t(this)),"toggle"===e&&n[e]()})},t._getInstance=function(t){return E.getData(t,nt)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(Q.on(document,ht.CLICK_DATA_API,at,function(t){t.preventDefault();var e=t.target;e.classList.contains(rt)||(e=G.closest(e,ut));var n=E.getData(e,nt);n||(n=new dt(e),E.setData(e,nt,n)),n.toggle()}),Q.on(document,ht.FOCUS_DATA_API,at,function(t){var e=G.closest(t.target,ut);e&&e.classList.add(st)}),Q.on(document,ht.BLUR_DATA_API,at,function(t){var e=G.closest(t.target,ut);e&&e.classList.remove(st)}),"undefined"!=typeof l){var pt=l.fn.button;l.fn.button=dt._jQueryInterface,l.fn.button.Constructor=dt,l.fn.button.noConflict=function(){return l.fn.button=pt,dt._jQueryInterface}}function gt(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function mt(t){return t.replace(/[A-Z]/g,function(t){return t.toLowerCase()})}var _t={setDataAttribute:function(t,e,n){t.setAttribute("data-"+mt(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+mt(e))},getDataAttributes:function(t){if(!t)return{};var e=i({},t.dataset);return Object.keys(e).forEach(function(t){e[t]=gt(e[t])}),e},getDataAttribute:function(t,e){return gt(t.getAttribute("data-"+mt(e)))},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:function(t){return{top:t.offsetTop,left:t.offsetLeft}},toggleClass:function(t,e){t&&(t.classList.contains(e)?t.classList.remove(e):t.classList.add(e))}},vt="carousel",yt="bs.carousel",bt="."+yt,Et={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},wt={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Dt="next",Tt="prev",It="left",At="right",Ot={SLIDE:"slide"+bt,SLID:"slid"+bt,KEYDOWN:"keydown"+bt,MOUSEENTER:"mouseenter"+bt,MOUSELEAVE:"mouseleave"+bt,TOUCHSTART:"touchstart"+bt,TOUCHMOVE:"touchmove"+bt,TOUCHEND:"touchend"+bt,POINTERDOWN:"pointerdown"+bt,POINTERUP:"pointerup"+bt,DRAG_START:"dragstart"+bt,LOAD_DATA_API:"load"+bt+".data-api",CLICK_DATA_API:"click"+bt+".data-api"},St="carousel",Lt="active",Ct="slide",Nt="carousel-item-right",kt="carousel-item-left",Pt="carousel-item-next",xt="carousel-item-prev",Mt="pointer-event",Ht={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",ITEM_IMG:".carousel-item img",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},jt={TOUCH:"touch",PEN:"pen"},Rt=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=G.findOne(Ht.INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),E.setData(t,yt,this)}var n=t.prototype;return n.next=function(){this._isSliding||this._slide(Dt)},n.nextWhenVisible=function(){!document.hidden&&_(this._element)&&this.next()},n.prev=function(){this._isSliding||this._slide(Tt)},n.pause=function(t){t||(this._isPaused=!0),G.findOne(Ht.NEXT_PREV,this._element)&&(h(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},n.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},n.to=function(t){var e=this;this._activeElement=G.findOne(Ht.ACTIVE_ITEM,this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)Q.one(this._element,Ot.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=t>n?Dt:Tt;this._slide(i,this._items[t])}},n.dispose=function(){Q.off(this._element,bt),E.removeData(this._element,yt),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},n._getConfig=function(t){return t=i({},Et,t),g(vt,t,wt),t},n._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},n._addEventListeners=function(){var t=this;this._config.keyboard&&Q.on(this._element,Ot.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(Q.on(this._element,Ot.MOUSEENTER,function(e){return t.pause(e)}),Q.on(this._element,Ot.MOUSELEAVE,function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},n._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&jt[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&jt[e.pointerType.toUpperCase()]&&(t.touchDeltaX=e.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval))};m(G.find(Ht.ITEM_IMG,this._element)).forEach(function(t){Q.on(t,Ot.DRAG_START,function(t){return t.preventDefault()})}),this._pointerEvent?(Q.on(this._element,Ot.POINTERDOWN,function(t){return e(t)}),Q.on(this._element,Ot.POINTERUP,function(t){return n(t)}),this._element.classList.add(Mt)):(Q.on(this._element,Ot.TOUCHSTART,function(t){return e(t)}),Q.on(this._element,Ot.TOUCHMOVE,function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)}),Q.on(this._element,Ot.TOUCHEND,function(t){return n(t)}))}},n._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},n._getItemIndex=function(t){return this._items=t&&t.parentNode?m(G.find(Ht.ITEM,t.parentNode)):[],this._items.indexOf(t)},n._getItemByDirection=function(t,e){var n=t===Dt,i=t===Tt,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+(t===Tt?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},n._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(G.findOne(Ht.ACTIVE_ITEM,this._element));return Q.trigger(this._element,Ot.SLIDE,{relatedTarget:t,direction:e,from:i,to:n})},n._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=G.find(Ht.ACTIVE,this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove(Lt);var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add(Lt)}},n._slide=function(t,e){var n,i,o,r=this,s=G.findOne(Ht.ACTIVE_ITEM,this._element),l=this._getItemIndex(s),c=e||s&&this._getItemByDirection(t,s),f=this._getItemIndex(c),h=Boolean(this._interval);if(t===Dt?(n=kt,i=Pt,o=It):(n=Nt,i=xt,o=At),c&&c.classList.contains(Lt))this._isSliding=!1;else if(!this._triggerSlideEvent(c,o).defaultPrevented&&s&&c){if(this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(c),this._element.classList.contains(Ct)){c.classList.add(i),y(c),s.classList.add(n),c.classList.add(n);var d=parseInt(c.getAttribute("data-interval"),10);d?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=d):this._config.interval=this._config.defaultInterval||this._config.interval;var g=u(s);Q.one(s,a,function(){c.classList.remove(n),c.classList.remove(i),c.classList.add(Lt),s.classList.remove(Lt),s.classList.remove(i),s.classList.remove(n),r._isSliding=!1,setTimeout(function(){Q.trigger(r._element,Ot.SLID,{relatedTarget:c,direction:o,from:l,to:f})},0)}),p(s,g)}else s.classList.remove(Lt),c.classList.add(Lt),this._isSliding=!1,Q.trigger(this._element,Ot.SLID,{relatedTarget:c,direction:o,from:l,to:f});h&&this.cycle()}},t._carouselInterface=function(e,n){var o=E.getData(e,yt),r=i({},Et,_t.getDataAttributes(e));"object"==typeof n&&(r=i({},r,n));var s="string"==typeof n?n:r.slide;if(o||(o=new t(e,r)),"number"==typeof n)o.to(n);else if("string"==typeof s){if("undefined"==typeof o[s])throw new TypeError('No method named "'+s+'"');o[s]()}else r.interval&&r.ride&&(o.pause(),o.cycle())},t._jQueryInterface=function(e){return this.each(function(){t._carouselInterface(this,e)})},t._dataApiClickHandler=function(e){var n=f(this);if(n){var o=G.findOne(n);if(o&&o.classList.contains(St)){var r=i({},_t.getDataAttributes(o),_t.getDataAttributes(this)),s=this.getAttribute("data-slide-to");s&&(r.interval=!1),t._carouselInterface(o,r),s&&E.getData(o,yt).to(s),e.preventDefault()}}},t._getInstance=function(t){return E.getData(t,yt)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Et}}]),t}();if(Q.on(document,Ot.CLICK_DATA_API,Ht.DATA_SLIDE,Rt._dataApiClickHandler),Q.on(window,Ot.LOAD_DATA_API,function(){for(var t=m(G.find(Ht.DATA_RIDE)),e=0,n=t.length;e<n;e++)Rt._carouselInterface(t[e],E.getData(t[e],yt))}),"undefined"!=typeof l){var Wt=l.fn[vt];l.fn[vt]=Rt._jQueryInterface,l.fn[vt].Constructor=Rt,l.fn[vt].noConflict=function(){return l.fn[vt]=Wt,Rt._jQueryInterface}}var Ft="collapse",Ut="bs.collapse",Bt="."+Ut,Kt={toggle:!0,parent:""},Vt={toggle:"boolean",parent:"(string|element)"},Yt={SHOW:"show"+Bt,SHOWN:"shown"+Bt,HIDE:"hide"+Bt,HIDDEN:"hidden"+Bt,CLICK_DATA_API:"click"+Bt+".data-api"},Qt="show",Gt="collapse",Xt="collapsing",qt="collapsed",zt="width",Zt="height",$t={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},Jt=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=m(G.find('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=m(G.find($t.DATA_TOGGLE)),i=0,o=n.length;i<o;i++){var r=n[i],s=f(r),a=m(G.find(s)).filter(function(e){return e===t});null!==s&&a.length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle(),E.setData(t,Ut,this)}var n=t.prototype;return n.toggle=function(){this._element.classList.contains(Qt)?this.hide():this.show()},n.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains(Qt)){var n,i;this._parent&&0===(n=m(G.find($t.ACTIVES,this._parent)).filter(function(t){return"string"==typeof e._config.parent?t.getAttribute("data-parent")===e._config.parent:t.classList.contains(Gt)})).length&&(n=null);var o=G.findOne(this._selector);if(n){var r=n.filter(function(t){return o!==t});if((i=r[0]?E.getData(r[0],Ut):null)&&i._isTransitioning)return}if(!Q.trigger(this._element,Yt.SHOW).defaultPrevented){n&&n.forEach(function(e){o!==e&&t._collapseInterface(e,"hide"),i||E.setData(e,Ut,null)});var s=this._getDimension();this._element.classList.remove(Gt),this._element.classList.add(Xt),this._element.style[s]=0,this._triggerArray.length&&this._triggerArray.forEach(function(t){t.classList.remove(qt),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);var l="scroll"+(s[0].toUpperCase()+s.slice(1)),c=u(this._element);Q.one(this._element,a,function(){e._element.classList.remove(Xt),e._element.classList.add(Gt),e._element.classList.add(Qt),e._element.style[s]="",e.setTransitioning(!1),Q.trigger(e._element,Yt.SHOWN)}),p(this._element,c),this._element.style[s]=this._element[l]+"px"}}},n.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains(Qt)&&!Q.trigger(this._element,Yt.HIDE).defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",y(this._element),this._element.classList.add(Xt),this._element.classList.remove(Gt),this._element.classList.remove(Qt);var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],r=f(o);if(null!==r)G.findOne(r).classList.contains(Qt)||(o.classList.add(qt),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var s=u(this._element);Q.one(this._element,a,function(){t.setTransitioning(!1),t._element.classList.remove(Xt),t._element.classList.add(Gt),Q.trigger(t._element,Yt.HIDDEN)}),p(this._element,s)}},n.setTransitioning=function(t){this._isTransitioning=t},n.dispose=function(){E.removeData(this._element,Ut),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},n._getConfig=function(t){return(t=i({},Kt,t)).toggle=Boolean(t.toggle),g(Ft,t,Vt),t},n._getDimension=function(){return this._element.classList.contains(zt)?zt:Zt},n._getParent=function(){var e=this,n=this._config.parent;d(n)?"undefined"==typeof n.jquery&&"undefined"==typeof n[0]||(n=n[0]):n=G.findOne(n);var i='[data-toggle="collapse"][data-parent="'+n+'"]';return m(G.find(i,n)).forEach(function(n){e._addAriaAndCollapsedClass(t._getTargetFromElement(n),[n])}),n},n._addAriaAndCollapsedClass=function(t,e){if(t){var n=t.classList.contains(Qt);e.length&&e.forEach(function(t){n?t.classList.remove(qt):t.classList.add(qt),t.setAttribute("aria-expanded",n)})}},t._getTargetFromElement=function(t){var e=f(t);return e?G.findOne(e):null},t._collapseInterface=function(e,n){var o=E.getData(e,Ut),r=i({},Kt,_t.getDataAttributes(e),"object"==typeof n&&n?n:{});if(!o&&r.toggle&&/show|hide/.test(n)&&(r.toggle=!1),o||(o=new t(e,r)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n]()}},t._jQueryInterface=function(e){return this.each(function(){t._collapseInterface(this,e)})},t._getInstance=function(t){return E.getData(t,Ut)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Kt}}]),t}();if(Q.on(document,Yt.CLICK_DATA_API,$t.DATA_TOGGLE,function(t){"A"===t.target.tagName&&t.preventDefault();var e=_t.getDataAttributes(this),n=f(this);m(G.find(n)).forEach(function(t){var n,i=E.getData(t,Ut);i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,Jt._collapseInterface(t,n)})}),"undefined"!=typeof l){var te=l.fn[Ft];l.fn[Ft]=Jt._jQueryInterface,l.fn[Ft].Constructor=Jt,l.fn[Ft].noConflict=function(){return l.fn[Ft]=te,Jt._jQueryInterface}}for(var ee="undefined"!=typeof window&&"undefined"!=typeof document,ne=["Edge","Trident","Firefox"],ie=0,oe=0;oe<ne.length;oe+=1)if(ee&&navigator.userAgent.indexOf(ne[oe])>=0){ie=1;break}var re=ee&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},ie))}};function se(t){return t&&"[object Function]"==={}.toString.call(t)}function ae(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function le(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function ce(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=ae(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:ce(le(t))}var fe=ee&&!(!window.MSInputMethodContext||!document.documentMode),ue=ee&&/MSIE 10/.test(navigator.userAgent);function he(t){return 11===t?fe:10===t?ue:fe||ue}function de(t){if(!t)return document.documentElement;for(var e=he(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===ae(n,"position")?de(n):n:t?t.ownerDocument.documentElement:document.documentElement}function pe(t){return null!==t.parentNode?pe(t.parentNode):t}function ge(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,r=document.createRange();r.setStart(i,0),r.setEnd(o,0);var s,a,l=r.commonAncestorContainer;if(t!==l&&e!==l||i.contains(o))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&de(s.firstElementChild)!==s?de(l):l;var c=pe(t);return c.host?ge(c.host,e):ge(t,pe(e).host)}function me(t){var e="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var i=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||i)[e]}return t[e]}function _e(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"],10)+parseFloat(t["border"+i+"Width"],10)}function ve(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],he(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function ye(t){var e=t.body,n=t.documentElement,i=he(10)&&getComputedStyle(n);return{height:ve("Height",e,n,i),width:ve("Width",e,n,i)}}var be=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Ee=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),we=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},De=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t};function Te(t){return De({},t,{right:t.left+t.width,bottom:t.top+t.height})}function Ie(t){var e={};try{if(he(10)){e=t.getBoundingClientRect();var n=me(t,"top"),i=me(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}else e=t.getBoundingClientRect()}catch(t){}var o={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},r="HTML"===t.nodeName?ye(t.ownerDocument):{},s=r.width||t.clientWidth||o.right-o.left,a=r.height||t.clientHeight||o.bottom-o.top,l=t.offsetWidth-s,c=t.offsetHeight-a;if(l||c){var f=ae(t);l-=_e(f,"x"),c-=_e(f,"y"),o.width-=l,o.height-=c}return Te(o)}function Ae(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=he(10),o="HTML"===e.nodeName,r=Ie(t),s=Ie(e),a=ce(t),l=ae(e),c=parseFloat(l.borderTopWidth,10),f=parseFloat(l.borderLeftWidth,10);n&&o&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var u=Te({top:r.top-s.top-c,left:r.left-s.left-f,width:r.width,height:r.height});if(u.marginTop=0,u.marginLeft=0,!i&&o){var h=parseFloat(l.marginTop,10),d=parseFloat(l.marginLeft,10);u.top-=c-h,u.bottom-=c-h,u.left-=f-d,u.right-=f-d,u.marginTop=h,u.marginLeft=d}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(u=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=me(e,"top"),o=me(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}(u,e)),u}function Oe(t){if(!t||!t.parentElement||he())return document.documentElement;for(var e=t.parentElement;e&&"none"===ae(e,"transform");)e=e.parentElement;return e||document.documentElement}function Se(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=o?Oe(t):ge(t,e);if("viewport"===i)r=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=Ae(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:me(n),a=e?0:me(n,"left");return Te({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:r})}(s,o);else{var a=void 0;"scrollParent"===i?"BODY"===(a=ce(le(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=Ae(a,s,o);if("HTML"!==a.nodeName||function t(e){var n=e.nodeName;if("BODY"===n||"HTML"===n)return!1;if("fixed"===ae(e,"position"))return!0;var i=le(e);return!!i&&t(i)}(s))r=l;else{var c=ye(t.ownerDocument),f=c.height,u=c.width;r.top+=l.top-l.marginTop,r.bottom=f+l.top,r.left+=l.left-l.marginLeft,r.right=u+l.left}}var h="number"==typeof(n=n||0);return r.left+=h?n:n.left||0,r.top+=h?n:n.top||0,r.right-=h?n:n.right||0,r.bottom-=h?n:n.bottom||0,r}function Le(t,e,n,i,o){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=Se(n,i,r,o),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map(function(t){return De({key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight}),f=c.length>0?c[0].key:l[0].key,u=t.split("-")[1];return f+(u?"-"+u:"")}function Ce(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return Ae(n,i?Oe(e):ge(e,n),i)}function Ne(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),i=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function ke(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function Pe(t,e,n){n=n.split("-")[0];var i=Ne(t),o={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(n),s=r?"top":"left",a=r?"left":"top",l=r?"height":"width",c=r?"width":"height";return o[s]=e[s]+e[l]/2-i[l]/2,o[a]=n===a?e[a]-i[c]:e[ke(a)],o}function xe(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function Me(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===n});var i=xe(t,function(t){return t[e]===n});return t.indexOf(i)}(t,"name",n))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&se(n)&&(e.offsets.popper=Te(e.offsets.popper),e.offsets.reference=Te(e.offsets.reference),e=n(e,t))}),e}function He(t,e){return t.some(function(t){var n=t.name;return t.enabled&&n===e})}function je(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length;i++){var o=e[i],r=o?""+o+n:t;if("undefined"!=typeof document.body.style[r])return r}return null}function Re(t){var e=t.ownerDocument;return e?e.defaultView:window}function We(t,e,n,i){n.updateBound=i,Re(t).addEventListener("resize",n.updateBound,{passive:!0});var o=ce(t);return function t(e,n,i,o){var r="BODY"===e.nodeName,s=r?e.ownerDocument.defaultView:e;s.addEventListener(n,i,{passive:!0}),r||t(ce(s.parentNode),n,i,o),o.push(s)}(o,"scroll",n.updateBound,n.scrollParents),n.scrollElement=o,n.eventsEnabled=!0,n}function Fe(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,Re(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.updateBound)}),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function Ue(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function Be(t,e){Object.keys(e).forEach(function(n){var i="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&Ue(e[n])&&(i="px"),t.style[n]=e[n]+i})}var Ke=ee&&/Firefox/i.test(navigator.userAgent);function Ve(t,e,n){var i=xe(t,function(t){return t.name===e}),o=!!i&&t.some(function(t){return t.name===n&&t.enabled&&t.order<i.order});if(!o){var r="`"+e+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+r+" modifier in order to work, be sure to include it before "+r+"!")}return o}var Ye=["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"],Qe=Ye.slice(3);function Ge(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Qe.indexOf(t),i=Qe.slice(n+1).concat(Qe.slice(0,n));return e?i.reverse():i}var Xe={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function qe(t,e,n,i){var o=[0,0],r=-1!==["right","left"].indexOf(i),s=t.split(/(\+|\-)/).map(function(t){return t.trim()}),a=s.indexOf(xe(s,function(t){return-1!==t.search(/,|\s/)}));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==a?[s.slice(0,a).concat([s[a].split(l)[0]]),[s[a].split(l)[1]].concat(s.slice(a+1))]:[s];return(c=c.map(function(t,i){var o=(1===i?!r:r)?"height":"width",s=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,s=!0,t):s?(t[t.length-1]+=e,s=!1,t):t.concat(e)},[]).map(function(t){return function(t,e,n,i){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+o[1],s=o[2];if(!r)return t;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return Te(a)[e]/100*r}if("vh"===s||"vw"===s)return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r;return r}(t,o,e,n)})})).forEach(function(t,e){t.forEach(function(n,i){Ue(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))})}),o}var ze={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var o=t.offsets,r=o.reference,s=o.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",f={start:we({},l,r[l]),end:we({},l,r[l]+r[c]-s[c])};t.offsets.popper=De({},s,f[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,o=t.offsets,r=o.popper,s=o.reference,a=i.split("-")[0],l=void 0;return l=Ue(+n)?[+n,0]:qe(n,r,s,a),"left"===a?(r.top+=l[0],r.left-=l[1]):"right"===a?(r.top+=l[0],r.left+=l[1]):"top"===a?(r.left+=l[0],r.top-=l[1]):"bottom"===a&&(r.left+=l[0],r.top+=l[1]),t.popper=r,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||de(t.instance.popper);t.instance.reference===n&&(n=de(n));var i=je("transform"),o=t.instance.popper.style,r=o.top,s=o.left,a=o[i];o.top="",o.left="",o[i]="";var l=Se(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);o.top=r,o.left=s,o[i]=a,e.boundaries=l;var c=e.priority,f=t.offsets.popper,u={primary:function(t){var n=f[t];return f[t]<l[t]&&!e.escapeWithReference&&(n=Math.max(f[t],l[t])),we({},t,n)},secondary:function(t){var n="right"===t?"left":"top",i=f[n];return f[t]>l[t]&&!e.escapeWithReference&&(i=Math.min(f[n],l[t]-("right"===t?f.width:f.height))),we({},n,i)}};return c.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";f=De({},f,u[e](t))}),t.offsets.popper=f,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<r(i[l])&&(t.offsets.popper[l]=r(i[l])-n[c]),n[l]>r(i[a])&&(t.offsets.popper[l]=r(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!Ve(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(o),c=l?"height":"width",f=l?"Top":"Left",u=f.toLowerCase(),h=l?"left":"top",d=l?"bottom":"right",p=Ne(i)[c];a[d]-p<s[u]&&(t.offsets.popper[u]-=s[u]-(a[d]-p)),a[u]+p>s[d]&&(t.offsets.popper[u]+=a[u]+p-s[d]),t.offsets.popper=Te(t.offsets.popper);var g=a[u]+a[c]/2-p/2,m=ae(t.instance.popper),_=parseFloat(m["margin"+f],10),v=parseFloat(m["border"+f+"Width"],10),y=g-t.offsets.popper[u]-_-v;return y=Math.max(Math.min(s[c]-p,y),0),t.arrowElement=i,t.offsets.arrow=(we(n={},u,Math.round(y)),we(n,h,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(He(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=Se(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=ke(i),r=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case Xe.FLIP:s=[i,o];break;case Xe.CLOCKWISE:s=Ge(i);break;case Xe.COUNTERCLOCKWISE:s=Ge(i,!0);break;default:s=e.behavior}return s.forEach(function(a,l){if(i!==a||s.length===l+1)return t;i=t.placement.split("-")[0],o=ke(i);var c=t.offsets.popper,f=t.offsets.reference,u=Math.floor,h="left"===i&&u(c.right)>u(f.left)||"right"===i&&u(c.left)<u(f.right)||"top"===i&&u(c.bottom)>u(f.top)||"bottom"===i&&u(c.top)<u(f.bottom),d=u(c.left)<u(n.left),p=u(c.right)>u(n.right),g=u(c.top)<u(n.top),m=u(c.bottom)>u(n.bottom),_="left"===i&&d||"right"===i&&p||"top"===i&&g||"bottom"===i&&m,v=-1!==["top","bottom"].indexOf(i),y=!!e.flipVariations&&(v&&"start"===r&&d||v&&"end"===r&&p||!v&&"start"===r&&g||!v&&"end"===r&&m),b=!!e.flipVariationsByContent&&(v&&"start"===r&&p||v&&"end"===r&&d||!v&&"start"===r&&m||!v&&"end"===r&&g),E=y||b;(h||_||E)&&(t.flipped=!0,(h||_)&&(i=s[l+1]),E&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=i+(r?"-"+r:""),t.offsets.popper=De({},t.offsets.popper,Pe(t.instance.popper,t.offsets.reference,t.placement)),t=Me(t.instance.modifiers,t,"flip"))}),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,o=i.popper,r=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return o[s?"left":"top"]=r[n]-(a?o[s?"width":"height"]:0),t.placement=ke(e),t.offsets.popper=Te(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!Ve(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=xe(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,i=e.y,o=t.offsets.popper,r=xe(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration;void 0!==r&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==r?r:e.gpuAcceleration,a=de(t.instance.popper),l=Ie(a),c={position:o.position},f=function(t,e){var n=t.offsets,i=n.popper,o=n.reference,r=Math.round,s=Math.floor,a=function(t){return t},l=r(o.width),c=r(i.width),f=-1!==["left","right"].indexOf(t.placement),u=-1!==t.placement.indexOf("-"),h=e?f||u||l%2==c%2?r:s:a,d=e?r:a;return{left:h(l%2==1&&c%2==1&&!u&&e?i.left-1:i.left),top:d(i.top),bottom:d(i.bottom),right:h(i.right)}}(t,window.devicePixelRatio<2||!Ke),u="bottom"===n?"top":"bottom",h="right"===i?"left":"right",d=je("transform"),p=void 0,g=void 0;if(g="bottom"===u?"HTML"===a.nodeName?-a.clientHeight+f.bottom:-l.height+f.bottom:f.top,p="right"===h?"HTML"===a.nodeName?-a.clientWidth+f.right:-l.width+f.right:f.left,s&&d)c[d]="translate3d("+p+"px, "+g+"px, 0)",c[u]=0,c[h]=0,c.willChange="transform";else{var m="bottom"===u?-1:1,_="right"===h?-1:1;c[u]=g*m,c[h]=p*_,c.willChange=u+", "+h}var v={"x-placement":t.placement};return t.attributes=De({},v,t.attributes),t.styles=De({},c,t.styles),t.arrowStyles=De({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return Be(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach(function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&Be(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){var r=Ce(o,e,t,n.positionFixed),s=Le(n.placement,r,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),Be(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},Ze=function(){function t(e,n){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};be(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=re(this.update.bind(this)),this.options=De({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(De({},t.Defaults.modifiers,o.modifiers)).forEach(function(e){i.options.modifiers[e]=De({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return De({name:t},i.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&se(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return Ee(t,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=Ce(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=Le(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=Pe(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=Me(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,He(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[je("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=We(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return Fe.call(this)}}]),t}();Ze.Utils=("undefined"!=typeof window?window:global).PopperUtils,Ze.placements=Ye,Ze.Defaults=ze;var $e="dropdown",Je="bs.dropdown",tn="."+Je,en=new RegExp("38|40|27"),nn={HIDE:"hide"+tn,HIDDEN:"hidden"+tn,SHOW:"show"+tn,SHOWN:"shown"+tn,CLICK:"click"+tn,CLICK_DATA_API:"click"+tn+".data-api",KEYDOWN_DATA_API:"keydown"+tn+".data-api",KEYUP_DATA_API:"keyup"+tn+".data-api"},on="disabled",rn="show",sn="dropup",an="dropright",ln="dropleft",cn="dropdown-menu-right",fn="position-static",un='[data-toggle="dropdown"]',hn=".dropdown form",dn=".dropdown-menu",pn=".navbar-nav",gn=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",mn="top-start",_n="top-end",vn="bottom-start",yn="bottom-end",bn="right-start",En="left-start",wn={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Dn={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Tn=function(){function t(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners(),E.setData(t,Je,this)}var n=t.prototype;return n.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains(on)){var e=t._getParentFromElement(this._element),n=this._menu.classList.contains(rn);if(t._clearMenus(),!n){var i={relatedTarget:this._element};if(!Q.trigger(e,nn.SHOW,i).defaultPrevented){if(!this._inNavbar){if("undefined"==typeof Ze)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var o=this._element;"parent"===this._config.reference?o=e:d(this._config.reference)&&(o=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&e.classList.add(fn),this._popper=new Ze(o,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&!m(G.closest(e,pn)).length&&m(document.body.children).forEach(function(t){return Q.on(t,"mouseover",null,function(){})}),this._element.focus(),this._element.setAttribute("aria-expanded",!0),_t.toggleClass(this._menu,rn),_t.toggleClass(e,rn),Q.trigger(e,nn.SHOWN,i)}}}},n.show=function(){if(!(this._element.disabled||this._element.classList.contains(on)||this._menu.classList.contains(rn))){var e=t._getParentFromElement(this._element),n={relatedTarget:this._element};Q.trigger(e,nn.SHOW,n).defaultPrevented||(_t.toggleClass(this._menu,rn),_t.toggleClass(e,rn),Q.trigger(e,nn.SHOWN,n))}},n.hide=function(){if(!this._element.disabled&&!this._element.classList.contains(on)&&this._menu.classList.contains(rn)){var e=t._getParentFromElement(this._element),n={relatedTarget:this._element};Q.trigger(e,nn.HIDE,n).defaultPrevented||(_t.toggleClass(this._menu,rn),_t.toggleClass(e,rn),Q.trigger(e,nn.HIDDEN,n))}},n.dispose=function(){E.removeData(this._element,Je),Q.off(this._element,tn),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},n.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},n._addEventListeners=function(){var t=this;Q.on(this._element,nn.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},n._getConfig=function(t){return t=i({},this.constructor.Default,_t.getDataAttributes(this._element),t),g($e,t,this.constructor.DefaultType),t},n._getMenuElement=function(){if(!this._menu){var e=t._getParentFromElement(this._element);e&&(this._menu=G.findOne(dn,e))}return this._menu},n._getPlacement=function(){var t=this._element.parentNode,e=vn;return t.classList.contains(sn)?(e=mn,this._menu.classList.contains(cn)&&(e=_n)):t.classList.contains(an)?e=bn:t.classList.contains(ln)?e=En:this._menu.classList.contains(cn)&&(e=yn),e},n._detectNavbar=function(){return Boolean(G.closest(this._element,".navbar"))},n._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=i({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},n._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),t},t._dropdownInterface=function(e,n){var i=E.getData(e,Je);if(i||(i=new t(e,"object"==typeof n?n:null)),"string"==typeof n){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},t._jQueryInterface=function(e){return this.each(function(){t._dropdownInterface(this,e)})},t._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var n=m(G.find(un)),i=0,o=n.length;i<o;i++){var r=t._getParentFromElement(n[i]),s=E.getData(n[i],Je),a={relatedTarget:n[i]};if(e&&"click"===e.type&&(a.clickEvent=e),s){var l=s._menu;if(r.classList.contains(rn))if(!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&r.contains(e.target)))Q.trigger(r,nn.HIDE,a).defaultPrevented||("ontouchstart"in document.documentElement&&m(document.body.children).forEach(function(t){return Q.off(t,"mouseover",null,function(){})}),n[i].setAttribute("aria-expanded","false"),l.classList.remove(rn),r.classList.remove(rn),Q.trigger(r,nn.HIDDEN,a))}}},t._getParentFromElement=function(t){var e,n=f(t);return n&&(e=G.findOne(n)),e||t.parentNode},t._dataApiKeydownHandler=function(e){if((/input|textarea/i.test(e.target.tagName)?!(32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||G.closest(e.target,dn))):en.test(e.which))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!this.classList.contains(on))){var n=t._getParentFromElement(this),i=n.classList.contains(rn);if(!i||i&&(27===e.which||32===e.which))return 27===e.which&&G.findOne(un,n).focus(),void t._clearMenus();var o=m(G.find(gn,n));if(o.length){var r=o.indexOf(e.target);38===e.which&&r>0&&r--,40===e.which&&r<o.length-1&&r++,r<0&&(r=0),o[r].focus()}}},t._getInstance=function(t){return E.getData(t,Je)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return wn}},{key:"DefaultType",get:function(){return Dn}}]),t}();if(Q.on(document,nn.KEYDOWN_DATA_API,un,Tn._dataApiKeydownHandler),Q.on(document,nn.KEYDOWN_DATA_API,dn,Tn._dataApiKeydownHandler),Q.on(document,nn.CLICK_DATA_API,Tn._clearMenus),Q.on(document,nn.KEYUP_DATA_API,Tn._clearMenus),Q.on(document,nn.CLICK_DATA_API,un,function(t){t.preventDefault(),t.stopPropagation(),Tn._dropdownInterface(this,"toggle")}),Q.on(document,nn.CLICK_DATA_API,hn,function(t){return t.stopPropagation()}),"undefined"!=typeof l){var In=l.fn[$e];l.fn[$e]=Tn._jQueryInterface,l.fn[$e].Constructor=Tn,l.fn[$e].noConflict=function(){return l.fn[$e]=In,Tn._jQueryInterface}}var An="bs.modal",On="."+An,Sn={backdrop:!0,keyboard:!0,focus:!0,show:!0},Ln={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Cn={HIDE:"hide"+On,HIDDEN:"hidden"+On,SHOW:"show"+On,SHOWN:"shown"+On,FOCUSIN:"focusin"+On,RESIZE:"resize"+On,CLICK_DISMISS:"click.dismiss"+On,KEYDOWN_DISMISS:"keydown.dismiss"+On,MOUSEUP_DISMISS:"mouseup.dismiss"+On,MOUSEDOWN_DISMISS:"mousedown.dismiss"+On,CLICK_DATA_API:"click"+On+".data-api"},Nn="modal-dialog-scrollable",kn="modal-scrollbar-measure",Pn="modal-backdrop",xn="modal-open",Mn="fade",Hn="show",jn={DIALOG:".modal-dialog",MODAL_BODY:".modal-body",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top"},Rn=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=G.findOne(jn.DIALOG,t),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,E.setData(t,An,this)}var n=t.prototype;return n.toggle=function(t){return this._isShown?this.hide():this.show(t)},n.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){this._element.classList.contains(Mn)&&(this._isTransitioning=!0);var n=Q.trigger(this._element,Cn.SHOW,{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),Q.on(this._element,Cn.CLICK_DISMISS,jn.DATA_DISMISS,function(t){return e.hide(t)}),Q.on(this._dialog,Cn.MOUSEDOWN_DISMISS,function(){Q.one(e._element,Cn.MOUSEUP_DISMISS,function(t){t.target===e._element&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},n.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=Q.trigger(this._element,Cn.HIDE);if(this._isShown&&!n.defaultPrevented){this._isShown=!1;var i=this._element.classList.contains(Mn);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),Q.off(document,Cn.FOCUSIN),this._element.classList.remove(Hn),Q.off(this._element,Cn.CLICK_DISMISS),Q.off(this._dialog,Cn.MOUSEDOWN_DISMISS),i){var o=u(this._element);Q.one(this._element,a,function(t){return e._hideModal(t)}),p(this._element,o)}else this._hideModal()}}},n.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return Q.off(t,On)}),Q.off(document,Cn.FOCUSIN),E.removeData(this._element,An),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},n.handleUpdate=function(){this._adjustDialog()},n._getConfig=function(t){return t=i({},Sn,t),g("modal",t,Ln),t},n._showElement=function(t){var e=this,n=this._element.classList.contains(Mn);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._dialog.classList.contains(Nn)?G.findOne(jn.MODAL_BODY,this._dialog).scrollTop=0:this._element.scrollTop=0,n&&y(this._element),this._element.classList.add(Hn),this._config.focus&&this._enforceFocus();var i=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,Q.trigger(e._element,Cn.SHOWN,{relatedTarget:t})};if(n){var o=u(this._dialog);Q.one(this._dialog,a,i),p(this._dialog,o)}else i()},n._enforceFocus=function(){var t=this;Q.off(document,Cn.FOCUSIN),Q.on(document,Cn.FOCUSIN,function(e){document===e.target||t._element===e.target||t._element.contains(e.target)||t._element.focus()})},n._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?Q.on(this._element,Cn.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):this._isShown||Q.off(this._element,Cn.KEYDOWN_DISMISS)},n._setResizeEvent=function(){var t=this;this._isShown?Q.on(window,Cn.RESIZE,function(e){return t.handleUpdate(e)}):Q.off(window,Cn.RESIZE)},n._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){document.body.classList.remove(xn),t._resetAdjustments(),t._resetScrollbar(),Q.trigger(t._element,Cn.HIDDEN)})},n._removeBackdrop=function(){this._backdrop&&(this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null)},n._showBackdrop=function(t){var e=this,n=this._element.classList.contains(Mn)?Mn:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=Pn,n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),Q.on(this._element,Cn.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&y(this._backdrop),this._backdrop.classList.add(Hn),!t)return;if(!n)return void t();var i=u(this._backdrop);Q.one(this._backdrop,a,t),p(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove(Hn);var o=function(){e._removeBackdrop(),t&&t()};if(this._element.classList.contains(Mn)){var r=u(this._backdrop);Q.one(this._backdrop,a,o),p(this._backdrop,r)}else o()}else t&&t()},n._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},n._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},n._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},n._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){m(G.find(jn.FIXED_CONTENT)).forEach(function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];_t.setDataAttribute(e,"padding-right",n),e.style.paddingRight=parseFloat(i)+t._scrollbarWidth+"px"}),m(G.find(jn.STICKY_CONTENT)).forEach(function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];_t.setDataAttribute(e,"margin-right",n),e.style.marginRight=parseFloat(i)-t._scrollbarWidth+"px"});var e=document.body.style.paddingRight,n=window.getComputedStyle(document.body)["padding-right"];_t.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add(xn)},n._resetScrollbar=function(){m(G.find(jn.FIXED_CONTENT)).forEach(function(t){var e=_t.getDataAttribute(t,"padding-right");"undefined"!=typeof e&&(_t.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)}),m(G.find(""+jn.STICKY_CONTENT)).forEach(function(t){var e=_t.getDataAttribute(t,"margin-right");"undefined"!=typeof e&&(_t.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)});var t=_t.getDataAttribute(document.body,"padding-right");"undefined"==typeof t?document.body.style.paddingRight="":(_t.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},n._getScrollbarWidth=function(){var t=document.createElement("div");t.className=kn,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t._jQueryInterface=function(e,n){return this.each(function(){var o=E.getData(this,An),r=i({},Sn,_t.getDataAttributes(this),"object"==typeof e&&e?e:{});if(o||(o=new t(this,r)),"string"==typeof e){if("undefined"==typeof o[e])throw new TypeError('No method named "'+e+'"');o[e](n)}else r.show&&o.show(n)})},t._getInstance=function(t){return E.getData(t,An)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Sn}}]),t}();if(Q.on(document,Cn.CLICK_DATA_API,jn.DATA_TOGGLE,function(t){var e,n=this,o=f(this);o&&(e=G.findOne(o));var r=E.getData(e,An)?"toggle":i({},_t.getDataAttributes(e),_t.getDataAttributes(this));"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),Q.one(e,Cn.SHOW,function(t){t.defaultPrevented||Q.one(e,Cn.HIDDEN,function(){_(n)&&n.focus()})});var s=E.getData(e,An);s||(s=new Rn(e,r)),s.show(this)}),"undefined"!=typeof l){var Wn=l.fn.modal;l.fn.modal=Rn._jQueryInterface,l.fn.modal.Constructor=Rn,l.fn.modal.noConflict=function(){return l.fn.modal=Wn,Rn._jQueryInterface}}var Fn=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Un=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,Bn=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,Kn=function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Fn.indexOf(n)||Boolean(t.nodeValue.match(Un)||t.nodeValue.match(Bn));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1},Vn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function Yn(t,e,n){if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),r=m(i.body.querySelectorAll("*")),s=function(t,n){var i=r[t],s=i.nodeName.toLowerCase();if(-1===o.indexOf(s))return i.parentNode.removeChild(i),"continue";var a=m(i.attributes),l=[].concat(e["*"]||[],e[s]||[]);a.forEach(function(t){Kn(t,l)||i.removeAttribute(t.nodeName)})},a=0,l=r.length;a<l;a++)s(a);return i.body.innerHTML}var Qn="tooltip",Gn=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Xn=["sanitize","whiteList","sanitizeFn"],qn={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},zn={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Zn={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Vn},$n="show",Jn="out",ti={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},ei="fade",ni="show",ii=".tooltip-inner",oi="hover",ri="focus",si="click",ai="manual",li=function(){function t(t,e){if("undefined"==typeof Ze)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners(),E.setData(t,this.constructor.DATA_KEY,this)}var n=t.prototype;return n.enable=function(){this._isEnabled=!0},n.disable=function(){this._isEnabled=!1},n.toggleEnabled=function(){this._isEnabled=!this._isEnabled},n.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=E.getData(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E.setData(t.delegateTarget,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(ni))return void this._leave(null,this);this._enter(null,this)}},n.dispose=function(){clearTimeout(this._timeout),E.removeData(this.element,this.constructor.DATA_KEY),Q.off(this.element,this.constructor.EVENT_KEY),Q.off(G.closest(this.element,".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},n.show=function(){var t=this;if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var e=Q.trigger(this.element,this.constructor.Event.SHOW),n=function t(e){if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){var n=e.getRootNode();return n instanceof ShadowRoot?n:null}return e instanceof ShadowRoot?e:e.parentNode?t(e.parentNode):null}(this.element),i=null===n?this.element.ownerDocument.documentElement.contains(this.element):n.contains(this.element);if(e.defaultPrevented||!i)return;var o=this.getTipElement(),r=c(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&o.classList.add(ei);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,l=this._getAttachment(s);this.addAttachmentClass(l);var f=this._getContainer();E.setData(o,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||f.appendChild(o),Q.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new Ze(this.element,o,{placement:l,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:"."+this.constructor.NAME+"-arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){return t._handlePopperPlacementChange(e)}}),o.classList.add(ni),"ontouchstart"in document.documentElement&&m(document.body.children).forEach(function(t){Q.on(t,"mouseover",function(){})});var h=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,Q.trigger(t.element,t.constructor.Event.SHOWN),e===Jn&&t._leave(null,t)};if(this.tip.classList.contains(ei)){var d=u(this.tip);Q.one(this.tip,a,h),p(this.tip,d)}else h()}},n.hide=function(t){var e=this,n=this.getTipElement(),i=function(){e._hoverState!==$n&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),Q.trigger(e.element,e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(!Q.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){if(n.classList.remove(ni),"ontouchstart"in document.documentElement&&m(document.body.children).forEach(function(t){return Q.off(t,"mouseover",v)}),this._activeTrigger[si]=!1,this._activeTrigger[ri]=!1,this._activeTrigger[oi]=!1,this.tip.classList.contains(ei)){var o=u(n);Q.one(n,a,i),p(n,o)}else i();this._hoverState=""}},n.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},n.isWithContent=function(){return Boolean(this.getTitle())},n.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+t)},n.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},n.setContent=function(){var t=this.getTipElement();this.setElementContent(G.findOne(ii,t),this.getTitle()),t.classList.remove(ei),t.classList.remove(ni)},n.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&(e.nodeType||e.jquery)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.innerText=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=Yn(e,this.config.whiteList,this.config.sanitizeFn)),t.innerHTML=e):t.innerText=e)},n.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},n._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=i({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},n._getContainer=function(){return!1===this.config.container?document.body:d(this.config.container)?this.config.container:G.findOne(this.config.container)},n._getAttachment=function(t){return zn[t.toUpperCase()]},n._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(e){if("click"===e)Q.on(t.element,t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(e!==ai){var n=e===oi?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i=e===oi?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;Q.on(t.element,n,t.config.selector,function(e){return t._enter(e)}),Q.on(t.element,i,t.config.selector,function(e){return t._leave(e)})}}),this._hideModalHandler=function(){t.element&&t.hide()},Q.on(G.closest(this.element,".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=i({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},n._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},n._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||E.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?ri:oi]=!0),e.getTipElement().classList.contains(ni)||e._hoverState===$n?e._hoverState=$n:(clearTimeout(e._timeout),e._hoverState=$n,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===$n&&e.show()},e.config.delay.show):e.show())},n._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||E.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?ri:oi]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=Jn,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===Jn&&e.hide()},e.config.delay.hide):e.hide())},n._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},n._getConfig=function(t){var e=_t.getDataAttributes(this.element);return Object.keys(e).forEach(function(t){-1!==Xn.indexOf(t)&&delete e[t]}),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=i({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),g(Qn,t,this.constructor.DefaultType),t.sanitize&&(t.template=Yn(t.template,t.whiteList,t.sanitizeFn)),t},n._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},n._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(Gn);null!==e&&e.length&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},n._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},n._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(t.classList.remove(ei),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,"bs.tooltip"),i="object"==typeof e&&e;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,i)),"string"==typeof e)){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return E.getData(t,"bs.tooltip")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Zn}},{key:"NAME",get:function(){return Qn}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return ti}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return qn}}]),t}();if("undefined"!=typeof l){var ci=l.fn.tooltip;l.fn.tooltip=li._jQueryInterface,l.fn.tooltip.Constructor=li,l.fn.tooltip.noConflict=function(){return l.fn.tooltip=ci,li._jQueryInterface}}var fi="popover",ui=new RegExp("(^|\\s)bs-popover\\S+","g"),hi=i({},li.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),di=i({},li.DefaultType,{content:"(string|element|function)"}),pi="fade",gi="show",mi=".popover-header",_i=".popover-body",vi={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},yi=function(t){var n,i;function o(){return t.apply(this,arguments)||this}i=t,(n=o).prototype=Object.create(i.prototype),n.prototype.constructor=n,n.__proto__=i;var r=o.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},r.setContent=function(){var t=this.getTipElement();this.setElementContent(G.findOne(mi,t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(G.findOne(_i,t),e),t.classList.remove(pi),t.classList.remove(gi)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(ui);null!==e&&e.length>0&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},o._jQueryInterface=function(t){return this.each(function(){var e=E.getData(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),E.setData(this,"bs.popover",e)),"string"==typeof t)){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})},o._getInstance=function(t){return E.getData(t,"bs.popover")},e(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return hi}},{key:"NAME",get:function(){return fi}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return vi}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return di}}]),o}(li);if("undefined"!=typeof l){var bi=l.fn.popover;l.fn.popover=yi._jQueryInterface,l.fn.popover.Constructor=yi,l.fn.popover.noConflict=function(){return l.fn.popover=bi,yi._jQueryInterface}}var Ei="scrollspy",wi="bs.scrollspy",Di="."+wi,Ti={offset:10,method:"auto",target:""},Ii={offset:"number",method:"string",target:"(string|element)"},Ai={ACTIVATE:"activate"+Di,SCROLL:"scroll"+Di,LOAD_DATA_API:"load"+Di+".data-api"},Oi={DROPDOWN_ITEM:"dropdown-item",ACTIVE:"active"},Si={DATA_SPY:'[data-spy="scroll"]',NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_TOGGLE:".dropdown-toggle"},Li="offset",Ci="position",Ni=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+Si.NAV_LINKS+","+this._config.target+" "+Si.LIST_ITEMS+","+this._config.target+" ."+Oi.DROPDOWN_ITEM,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,Q.on(this._scrollElement,Ai.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process(),E.setData(t,wi,this)}var n=t.prototype;return n.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?Li:Ci,n="auto"===this._config.method?e:this._config.method,i=n===Ci?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),m(G.find(this._selector)).map(function(t){var e,o=f(t);if(o&&(e=G.findOne(o)),e){var r=e.getBoundingClientRect();if(r.width||r.height)return[_t[n](e).top+i,o]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},n.dispose=function(){E.removeData(this._element,wi),Q.off(this._scrollElement,Di),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},n._getConfig=function(t){if("string"!=typeof(t=i({},Ti,"object"==typeof t&&t?t:{})).target){var e=t.target.id;e||(e=c(Ei),t.target.id=e),t.target="#"+e}return g(Ei,t,Ii),t},n._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},n._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},n._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},n._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},n._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map(function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'}),n=G.findOne(e.join(","));n.classList.contains(Oi.DROPDOWN_ITEM)?(G.findOne(Si.DROPDOWN_TOGGLE,G.closest(n,Si.DROPDOWN)).classList.add(Oi.ACTIVE),n.classList.add(Oi.ACTIVE)):(n.classList.add(Oi.ACTIVE),G.parents(n,Si.NAV_LIST_GROUP).forEach(function(t){G.prev(t,Si.NAV_LINKS+", "+Si.LIST_ITEMS).forEach(function(t){return t.classList.add(Oi.ACTIVE)}),G.prev(t,Si.NAV_ITEMS).forEach(function(t){G.children(t,Si.NAV_LINKS).forEach(function(t){return t.classList.add(Oi.ACTIVE)})})})),Q.trigger(this._scrollElement,Ai.ACTIVATE,{relatedTarget:t})},n._clear=function(){m(G.find(this._selector)).filter(function(t){return t.classList.contains(Oi.ACTIVE)}).forEach(function(t){return t.classList.remove(Oi.ACTIVE)})},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,wi);if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return E.getData(t,wi)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ti}}]),t}();if(Q.on(window,Ai.LOAD_DATA_API,function(){m(G.find(Si.DATA_SPY)).forEach(function(t){return new Ni(t,_t.getDataAttributes(t))})}),"undefined"!=typeof l){var ki=l.fn[Ei];l.fn[Ei]=Ni._jQueryInterface,l.fn[Ei].Constructor=Ni,l.fn[Ei].noConflict=function(){return l.fn[Ei]=ki,Ni._jQueryInterface}}var Pi="bs.tab",xi="."+Pi,Mi={HIDE:"hide"+xi,HIDDEN:"hidden"+xi,SHOW:"show"+xi,SHOWN:"shown"+xi,CLICK_DATA_API:"click"+xi+".data-api"},Hi="dropdown-menu",ji="active",Ri="disabled",Wi="fade",Fi="show",Ui=".dropdown",Bi=".nav, .list-group",Ki=".active",Vi=":scope > li > .active",Yi='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Qi=".dropdown-toggle",Gi=":scope > .dropdown-menu .active",Xi=function(){function t(t){this._element=t,E.setData(this._element,Pi,this)}var n=t.prototype;return n.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(ji)||this._element.classList.contains(Ri))){var e,n,i=G.closest(this._element,Bi),o=f(this._element);if(i){var r="UL"===i.nodeName||"OL"===i.nodeName?Vi:Ki;n=(n=m(G.find(r,i)))[n.length-1]}var s=null;if(n&&(s=Q.trigger(n,Mi.HIDE,{relatedTarget:this._element})),!(Q.trigger(this._element,Mi.SHOW,{relatedTarget:n}).defaultPrevented||null!==s&&s.defaultPrevented)){o&&(e=G.findOne(o)),this._activate(this._element,i);var a=function(){Q.trigger(n,Mi.HIDDEN,{relatedTarget:t._element}),Q.trigger(t._element,Mi.SHOWN,{relatedTarget:n})};e?this._activate(e,e.parentNode,a):a()}}},n.dispose=function(){E.removeData(this._element,Pi),this._element=null},n._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?G.children(e,Ki):G.find(Vi,e))[0],r=n&&o&&o.classList.contains(Wi),s=function(){return i._transitionComplete(t,o,n)};if(o&&r){var l=u(o);o.classList.remove(Fi),Q.one(o,a,s),p(o,l)}else s()},n._transitionComplete=function(t,e,n){if(e){e.classList.remove(ji);var i=G.findOne(Gi,e.parentNode);i&&i.classList.remove(ji),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add(ji),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),y(t),t.classList.contains(Wi)&&t.classList.add(Fi),t.parentNode&&t.parentNode.classList.contains(Hi))&&(G.closest(t,Ui)&&m(G.find(Qi)).forEach(function(t){return t.classList.add(ji)}),t.setAttribute("aria-expanded",!0));n&&n()},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,Pi)||new t(this);if("string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return E.getData(t,Pi)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(Q.on(document,Mi.CLICK_DATA_API,Yi,function(t){t.preventDefault(),(E.getData(this,Pi)||new Xi(this)).show()}),"undefined"!=typeof l){var qi=l.fn.tab;l.fn.tab=Xi._jQueryInterface,l.fn.tab.Constructor=Xi,l.fn.tab.noConflict=function(){return l.fn.tab=qi,Xi._jQueryInterface}}var zi="bs.toast",Zi="."+zi,$i={CLICK_DISMISS:"click.dismiss"+Zi,HIDE:"hide"+Zi,HIDDEN:"hidden"+Zi,SHOW:"show"+Zi,SHOWN:"shown"+Zi},Ji="fade",to="hide",eo="show",no="showing",io={animation:"boolean",autohide:"boolean",delay:"number"},oo={animation:!0,autohide:!0,delay:500},ro='[data-dismiss="toast"]',so=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),E.setData(t,zi,this)}var n=t.prototype;return n.show=function(){var t=this;if(!Q.trigger(this._element,$i.SHOW).defaultPrevented){this._config.animation&&this._element.classList.add(Ji);var e=function(){t._element.classList.remove(no),t._element.classList.add(eo),Q.trigger(t._element,$i.SHOWN),t._config.autohide&&(t._timeout=setTimeout(function(){t.hide()},t._config.delay))};if(this._element.classList.remove(to),this._element.classList.add(no),this._config.animation){var n=u(this._element);Q.one(this._element,a,e),p(this._element,n)}else e()}},n.hide=function(){var t=this;if(this._element.classList.contains(eo)&&!Q.trigger(this._element,$i.HIDE).defaultPrevented){var e=function(){t._element.classList.add(to),Q.trigger(t._element,$i.HIDDEN)};if(this._element.classList.remove(eo),this._config.animation){var n=u(this._element);Q.one(this._element,a,e),p(this._element,n)}else e()}},n.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(eo)&&this._element.classList.remove(eo),Q.off(this._element,$i.CLICK_DISMISS),E.removeData(this._element,zi),this._element=null,this._config=null},n._getConfig=function(t){return t=i({},oo,_t.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),g("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;Q.on(this._element,$i.CLICK_DISMISS,ro,function(){return t.hide()})},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,zi);if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e](this)}})},t._getInstance=function(t){return E.getData(t,zi)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return io}},{key:"Default",get:function(){return oo}}]),t}();if("undefined"!=typeof l){var ao=l.fn.toast;l.fn.toast=so._jQueryInterface,l.fn.toast.Constructor=so,l.fn.toast.noConflict=function(){return l.fn.toast=ao,so._jQueryInterface}}return{Alert:tt,Button:dt,Carousel:Rt,Collapse:Jt,Dropdown:Tn,Modal:Rn,Popover:yi,ScrollSpy:Ni,Tab:Xi,Toast:so,Tooltip:li}}); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).bootstrap=e()}(this,function(){"use strict";function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function e(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}function n(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,i)}return n}function o(t){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{};e%2?i(o,!0).forEach(function(e){n(t,e,o[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):i(o).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))})}return t}var r,s,a,l="transitionend",c=window.jQuery,f=function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},u=function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},h=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,o=parseFloat(n),r=parseFloat(i);return o||r?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},d=function(t){var e=document.createEvent("HTMLEvents");e.initEvent(l,!0,!0),t.dispatchEvent(e)},p=function(t){return(t[0]||t).nodeType},g=function(t,e){var n=!1,i=e+5;t.addEventListener(l,function e(){n=!0,t.removeEventListener(l,e)}),setTimeout(function(){n||d(t)},i)},m=function(t,e,n){Object.keys(n).forEach(function(i){var o,r=n[i],s=e[i],a=s&&p(s)?"element":(o=s,{}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+r+'".')})},_=function(t){return t?[].slice.call(t):[]},v=function(t){return!!t&&(!!(t.style&&t.parentNode&&t.parentNode.style)&&("none"!==t.style.display&&"none"!==t.parentNode.style.display&&"hidden"!==t.style.visibility))},b=function(){return function(){}},y=function(t){return t.offsetHeight},E=(r={},s=1,{set:function(t,e,n){"undefined"==typeof t.key&&(t.key={key:e,id:s},s++),r[t.key.id]=n},get:function(t,e){if(!t||"undefined"==typeof t.key)return null;var n=t.key;return n.key===e?r[n.id]:null},delete:function(t,e){if("undefined"!=typeof t.key){var n=t.key;n.key===e&&(delete r[n.id],delete t.key)}}}),w={setData:function(t,e,n){E.set(t,e,n)},getData:function(t,e){return E.get(t,e)},removeData:function(t,e){E.delete(t,e)}},D=Element.prototype,T=D.matches,I=D.closest,A=Element.prototype.querySelectorAll,O=Element.prototype.querySelector,L=function(t,e){return new CustomEvent(t,e)};if("function"!=typeof window.CustomEvent&&(L=function(t,e){e=e||{bubbles:!1,cancelable:!1,detail:null};var n=document.createEvent("CustomEvent");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n}),!((a=document.createEvent("CustomEvent")).initEvent("Bootstrap",!0,!0),a.preventDefault(),a.defaultPrevented)){var S=Event.prototype.preventDefault;Event.prototype.preventDefault=function(){this.cancelable&&(S.call(this),Object.defineProperty(this,"defaultPrevented",{get:function(){return!0},configurable:!0}))}}var C=function(){var t=L("Bootstrap",{cancelable:!0}),e=document.createElement("div");return e.addEventListener("Bootstrap",function(){return null}),t.preventDefault(),e.dispatchEvent(t),t.defaultPrevented}();T||(T=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),I||(I=function(t){var e=this;do{if(T.call(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null});var N=/:scope\b/;(function(){var t=document.createElement("div");try{t.querySelectorAll(":scope *")}catch(t){return!1}return!0})()||(A=function(t){if(!N.test(t))return this.querySelectorAll(t);var e=Boolean(this.id);e||(this.id=f("scope"));var n=null;try{t=t.replace(N,"#"+this.id),n=this.querySelectorAll(t)}finally{e||this.removeAttribute("id")}return n},O=function(t){if(!N.test(t))return this.querySelector(t);var e=A.call(this,t);return"undefined"!=typeof e[0]?e[0]:null});var k=/[^.]*(?=\..*)\.|.*/,P=/\..*/,x=/^key/,M=/::\d+$/,H={},j=1,R={mouseenter:"mouseover",mouseleave:"mouseout"},W=["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"];function U(t,e){return e&&e+"::"+j++||t.uidEvent||j++}function F(t){var e=U(t);return t.uidEvent=e,H[e]=H[e]||{},H[e]}function B(t,e){null===t.which&&x.test(t.type)&&(t.which=null===t.charCode?t.keyCode:t.charCode),t.delegateTarget=e}function K(t,e,n){void 0===n&&(n=null);for(var i=Object.keys(t),o=0,r=i.length;o<r;o++){var s=t[i[o]];if(s.originalHandler===e&&s.delegationSelector===n)return s}return null}function V(t,e,n){var i="string"==typeof e,o=i?n:e,r=t.replace(P,""),s=R[r];return s&&(r=s),W.indexOf(r)>-1||(r=t),[i,o,r]}function Y(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var r=V(e,n,i),s=r[0],a=r[1],l=r[2],c=F(t),f=c[l]||(c[l]={}),u=K(f,a,s?n:null);if(u)u.oneOff=u.oneOff&&o;else{var h=U(a,e.replace(k,"")),d=s?function(t,e,n){return function i(o){for(var r=t.querySelectorAll(e),s=o.target;s&&s!==this;s=s.parentNode)for(var a=r.length;a--;)if(r[a]===s)return B(o,s),i.oneOff&&G.off(t,o.type,n),n.apply(s,[o]);return null}}(t,n,i):function(t,e){return function n(i){return B(i,t),n.oneOff&&G.off(t,i.type,e),e.apply(t,[i])}}(t,n);d.delegationSelector=s?n:null,d.originalHandler=a,d.oneOff=o,d.uidEvent=h,f[h]=d,t.addEventListener(l,d,s)}}}function Q(t,e,n,i,o){var r=K(e[n],i,o);r&&(t.removeEventListener(n,r,Boolean(o)),delete e[n][r.uidEvent])}var G={on:function(t,e,n,i){Y(t,e,n,i,!1)},one:function(t,e,n,i){Y(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=V(e,n,i),r=o[0],s=o[1],a=o[2],l=a!==e,c=F(t),f="."===e.charAt(0);if("undefined"==typeof s){f&&Object.keys(c).forEach(function(n){!function(t,e,n,i){var o=e[n]||{};Object.keys(o).forEach(function(r){if(r.indexOf(i)>-1){var s=o[r];Q(t,e,n,s.originalHandler,s.delegationSelector)}})}(t,c,n,e.substr(1))});var u=c[a]||{};Object.keys(u).forEach(function(n){var i=n.replace(M,"");if(!l||e.indexOf(i)>-1){var o=u[n];Q(t,c,a,o.originalHandler,o.delegationSelector)}})}else{if(!c||!c[a])return;Q(t,c,a,s,r?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=e.replace(P,""),r=e!==o,s=W.indexOf(o)>-1,a=!0,l=!0,f=!1,u=null;return r&&"undefined"!=typeof c&&(i=c.Event(e,n),c(t).trigger(i),a=!i.isPropagationStopped(),l=!i.isImmediatePropagationStopped(),f=i.isDefaultPrevented()),s?(u=document.createEvent("HTMLEvents")).initEvent(o,a,!0):u=L(e,{bubbles:a,cancelable:!0}),"undefined"!=typeof n&&Object.keys(n).forEach(function(t){Object.defineProperty(u,t,{get:function(){return n[t]}})}),f&&(u.preventDefault(),C||Object.defineProperty(u,"defaultPrevented",{get:function(){return!0}})),l&&t.dispatchEvent(u),u.defaultPrevented&&"undefined"!=typeof i&&i.preventDefault(),u}},X={matches:function(t,e){return T.call(t,e)},find:function(t,e){return void 0===e&&(e=document.documentElement),A.call(e,t)},findOne:function(t,e){return void 0===e&&(e=document.documentElement),O.call(e,t)},children:function(t,e){var n=this,i=_(t.children);return i.filter(function(t){return n.matches(t,e)})},parents:function(t,e){for(var n=[],i=t.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.parentNode;return n},closest:function(t,e){return I.call(t,e)},prev:function(t,e){for(var n=[],i=t.previousSibling;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.previousSibling;return n}},q="bs.alert",z="."+q,Z={CLOSE:"close"+z,CLOSED:"closed"+z,CLICK_DATA_API:"click"+z+".data-api"},$="alert",J="fade",tt="show",et=function(){function t(t){this._element=t,this._element&&w.setData(t,q,this)}var n=t.prototype;return n.close=function(t){var e=this._element;t&&(e=this._getRootElement(t));var n=this._triggerCloseEvent(e);null===n||n.defaultPrevented||this._removeElement(e)},n.dispose=function(){w.removeData(this._element,q),this._element=null},n._getRootElement=function(t){var e=u(t),n=!1;return e&&(n=X.findOne(e)),n||(n=X.closest(t,"."+$)),n},n._triggerCloseEvent=function(t){return G.trigger(t,Z.CLOSE)},n._removeElement=function(t){var e=this;if(t.classList.remove(tt),t.classList.contains(J)){var n=h(t);G.one(t,l,function(){return e._destroyElement(t)}),g(t,n)}else this._destroyElement(t)},n._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),G.trigger(t,Z.CLOSED)},t._jQueryInterface=function(e){return this.each(function(){var n=w.getData(this,q);n||(n=new t(this)),"close"===e&&n[e](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},t._getInstance=function(t){return w.getData(t,q)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(G.on(document,Z.CLICK_DATA_API,'[data-dismiss="alert"]',et._handleDismiss(new et)),"undefined"!=typeof c){var nt=c.fn.alert;c.fn.alert=et._jQueryInterface,c.fn.alert.Constructor=et,c.fn.alert.noConflict=function(){return c.fn.alert=nt,et._jQueryInterface}}var it="bs.button",ot="."+it,rt="active",st="btn",at="focus",lt='[data-toggle^="button"]',ct='[data-toggle="buttons"]',ft='input:not([type="hidden"])',ut=".active",ht=".btn",dt={CLICK_DATA_API:"click"+ot+".data-api",FOCUS_DATA_API:"focus"+ot+".data-api",BLUR_DATA_API:"blur"+ot+".data-api"},pt=function(){function t(t){this._element=t,w.setData(t,it,this)}var n=t.prototype;return n.toggle=function(){var t=!0,e=!0,n=X.closest(this._element,ct);if(n){var i=X.findOne(ft,this._element);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(rt))t=!1;else{var o=X.findOne(ut,n);o&&o.classList.remove(rt)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(rt),G.trigger(i,"change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(rt)),t&&this._element.classList.toggle(rt)},n.dispose=function(){w.removeData(this._element,it),this._element=null},t._jQueryInterface=function(e){return this.each(function(){var n=w.getData(this,it);n||(n=new t(this)),"toggle"===e&&n[e]()})},t._getInstance=function(t){return w.getData(t,it)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(G.on(document,dt.CLICK_DATA_API,lt,function(t){t.preventDefault();var e=t.target;e.classList.contains(st)||(e=X.closest(e,ht));var n=w.getData(e,it);n||(n=new pt(e)),n.toggle()}),G.on(document,dt.FOCUS_DATA_API,lt,function(t){var e=X.closest(t.target,ht);e&&e.classList.add(at)}),G.on(document,dt.BLUR_DATA_API,lt,function(t){var e=X.closest(t.target,ht);e&&e.classList.remove(at)}),"undefined"!=typeof c){var gt=c.fn.button;c.fn.button=pt._jQueryInterface,c.fn.button.Constructor=pt,c.fn.button.noConflict=function(){return c.fn.button=gt,pt._jQueryInterface}}function mt(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function _t(t){return t.replace(/[A-Z]/g,function(t){return t.toLowerCase()})}var vt={setDataAttribute:function(t,e,n){t.setAttribute("data-"+_t(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+_t(e))},getDataAttributes:function(t){if(!t)return{};var e=o({},t.dataset);return Object.keys(e).forEach(function(t){e[t]=mt(e[t])}),e},getDataAttribute:function(t,e){return mt(t.getAttribute("data-"+_t(e)))},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:function(t){return{top:t.offsetTop,left:t.offsetLeft}},toggleClass:function(t,e){t&&(t.classList.contains(e)?t.classList.remove(e):t.classList.add(e))}},bt="carousel",yt="bs.carousel",Et="."+yt,wt={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Dt={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Tt="next",It="prev",At="left",Ot="right",Lt={SLIDE:"slide"+Et,SLID:"slid"+Et,KEYDOWN:"keydown"+Et,MOUSEENTER:"mouseenter"+Et,MOUSELEAVE:"mouseleave"+Et,TOUCHSTART:"touchstart"+Et,TOUCHMOVE:"touchmove"+Et,TOUCHEND:"touchend"+Et,POINTERDOWN:"pointerdown"+Et,POINTERUP:"pointerup"+Et,DRAG_START:"dragstart"+Et,LOAD_DATA_API:"load"+Et+".data-api",CLICK_DATA_API:"click"+Et+".data-api"},St="carousel",Ct="active",Nt="slide",kt="carousel-item-right",Pt="carousel-item-left",xt="carousel-item-next",Mt="carousel-item-prev",Ht="pointer-event",jt={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",ITEM_IMG:".carousel-item img",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},Rt={TOUCH:"touch",PEN:"pen"},Wt=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=X.findOne(jt.INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),w.setData(t,yt,this)}var n=t.prototype;return n.next=function(){this._isSliding||this._slide(Tt)},n.nextWhenVisible=function(){!document.hidden&&v(this._element)&&this.next()},n.prev=function(){this._isSliding||this._slide(It)},n.pause=function(t){t||(this._isPaused=!0),X.findOne(jt.NEXT_PREV,this._element)&&(d(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},n.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},n.to=function(t){var e=this;this._activeElement=X.findOne(jt.ACTIVE_ITEM,this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)G.one(this._element,Lt.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=t>n?Tt:It;this._slide(i,this._items[t])}},n.dispose=function(){G.off(this._element,Et),w.removeData(this._element,yt),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},n._getConfig=function(t){return t=o({},wt,{},t),m(bt,t,Dt),t},n._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},n._addEventListeners=function(){var t=this;this._config.keyboard&&G.on(this._element,Lt.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(G.on(this._element,Lt.MOUSEENTER,function(e){return t.pause(e)}),G.on(this._element,Lt.MOUSELEAVE,function(e){return t.cycle(e)})),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},n._addTouchEventListeners=function(){var t=this,e=function(e){t._pointerEvent&&Rt[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&Rt[e.pointerType.toUpperCase()]&&(t.touchDeltaX=e.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval))};_(X.find(jt.ITEM_IMG,this._element)).forEach(function(t){G.on(t,Lt.DRAG_START,function(t){return t.preventDefault()})}),this._pointerEvent?(G.on(this._element,Lt.POINTERDOWN,function(t){return e(t)}),G.on(this._element,Lt.POINTERUP,function(t){return n(t)}),this._element.classList.add(Ht)):(G.on(this._element,Lt.TOUCHSTART,function(t){return e(t)}),G.on(this._element,Lt.TOUCHMOVE,function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)}),G.on(this._element,Lt.TOUCHEND,function(t){return n(t)}))},n._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},n._getItemIndex=function(t){return this._items=t&&t.parentNode?_(X.find(jt.ITEM,t.parentNode)):[],this._items.indexOf(t)},n._getItemByDirection=function(t,e){var n=t===Tt,i=t===It,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+(t===It?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},n._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(X.findOne(jt.ACTIVE_ITEM,this._element));return G.trigger(this._element,Lt.SLIDE,{relatedTarget:t,direction:e,from:i,to:n})},n._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=X.find(jt.ACTIVE,this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove(Ct);var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add(Ct)}},n._slide=function(t,e){var n,i,o,r=this,s=X.findOne(jt.ACTIVE_ITEM,this._element),a=this._getItemIndex(s),c=e||s&&this._getItemByDirection(t,s),f=this._getItemIndex(c),u=Boolean(this._interval);if(t===Tt?(n=Pt,i=xt,o=At):(n=kt,i=Mt,o=Ot),c&&c.classList.contains(Ct))this._isSliding=!1;else if(!this._triggerSlideEvent(c,o).defaultPrevented&&s&&c){if(this._isSliding=!0,u&&this.pause(),this._setActiveIndicatorElement(c),this._element.classList.contains(Nt)){c.classList.add(i),y(c),s.classList.add(n),c.classList.add(n);var d=parseInt(c.getAttribute("data-interval"),10);d?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=d):this._config.interval=this._config.defaultInterval||this._config.interval;var p=h(s);G.one(s,l,function(){c.classList.remove(n),c.classList.remove(i),c.classList.add(Ct),s.classList.remove(Ct),s.classList.remove(i),s.classList.remove(n),r._isSliding=!1,setTimeout(function(){G.trigger(r._element,Lt.SLID,{relatedTarget:c,direction:o,from:a,to:f})},0)}),g(s,p)}else s.classList.remove(Ct),c.classList.add(Ct),this._isSliding=!1,G.trigger(this._element,Lt.SLID,{relatedTarget:c,direction:o,from:a,to:f});u&&this.cycle()}},t._carouselInterface=function(e,n){var i=w.getData(e,yt),r=o({},wt,{},vt.getDataAttributes(e));"object"==typeof n&&(r=o({},r,{},n));var s="string"==typeof n?n:r.slide;if(i||(i=new t(e,r)),"number"==typeof n)i.to(n);else if("string"==typeof s){if("undefined"==typeof i[s])throw new TypeError('No method named "'+s+'"');i[s]()}else r.interval&&r.ride&&(i.pause(),i.cycle())},t._jQueryInterface=function(e){return this.each(function(){t._carouselInterface(this,e)})},t._dataApiClickHandler=function(e){var n=u(this);if(n){var i=X.findOne(n);if(i&&i.classList.contains(St)){var r=o({},vt.getDataAttributes(i),{},vt.getDataAttributes(this)),s=this.getAttribute("data-slide-to");s&&(r.interval=!1),t._carouselInterface(i,r),s&&w.getData(i,yt).to(s),e.preventDefault()}}},t._getInstance=function(t){return w.getData(t,yt)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return wt}}]),t}();if(G.on(document,Lt.CLICK_DATA_API,jt.DATA_SLIDE,Wt._dataApiClickHandler),G.on(window,Lt.LOAD_DATA_API,function(){for(var t=_(X.find(jt.DATA_RIDE)),e=0,n=t.length;e<n;e++)Wt._carouselInterface(t[e],w.getData(t[e],yt))}),"undefined"!=typeof c){var Ut=c.fn[bt];c.fn[bt]=Wt._jQueryInterface,c.fn[bt].Constructor=Wt,c.fn[bt].noConflict=function(){return c.fn[bt]=Ut,Wt._jQueryInterface}}var Ft="collapse",Bt="bs.collapse",Kt="."+Bt,Vt={toggle:!0,parent:""},Yt={toggle:"boolean",parent:"(string|element)"},Qt={SHOW:"show"+Kt,SHOWN:"shown"+Kt,HIDE:"hide"+Kt,HIDDEN:"hidden"+Kt,CLICK_DATA_API:"click"+Kt+".data-api"},Gt="show",Xt="collapse",qt="collapsing",zt="collapsed",Zt="width",$t="height",Jt={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},te=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=_(X.find('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=_(X.find(Jt.DATA_TOGGLE)),i=0,o=n.length;i<o;i++){var r=n[i],s=u(r),a=_(X.find(s)).filter(function(e){return e===t});null!==s&&a.length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle(),w.setData(t,Bt,this)}var n=t.prototype;return n.toggle=function(){this._element.classList.contains(Gt)?this.hide():this.show()},n.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains(Gt)){var n,i;this._parent&&0===(n=_(X.find(Jt.ACTIVES,this._parent)).filter(function(t){return"string"==typeof e._config.parent?t.getAttribute("data-parent")===e._config.parent:t.classList.contains(Xt)})).length&&(n=null);var o=X.findOne(this._selector);if(n){var r=n.filter(function(t){return o!==t});if((i=r[0]?w.getData(r[0],Bt):null)&&i._isTransitioning)return}if(!G.trigger(this._element,Qt.SHOW).defaultPrevented){n&&n.forEach(function(e){o!==e&&t._collapseInterface(e,"hide"),i||w.setData(e,Bt,null)});var s=this._getDimension();this._element.classList.remove(Xt),this._element.classList.add(qt),this._element.style[s]=0,this._triggerArray.length&&this._triggerArray.forEach(function(t){t.classList.remove(zt),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);var a="scroll"+(s[0].toUpperCase()+s.slice(1)),c=h(this._element);G.one(this._element,l,function(){e._element.classList.remove(qt),e._element.classList.add(Xt),e._element.classList.add(Gt),e._element.style[s]="",e.setTransitioning(!1),G.trigger(e._element,Qt.SHOWN)}),g(this._element,c),this._element.style[s]=this._element[a]+"px"}}},n.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains(Gt)&&!G.trigger(this._element,Qt.HIDE).defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",y(this._element),this._element.classList.add(qt),this._element.classList.remove(Xt),this._element.classList.remove(Gt);var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],r=u(o);if(null!==r)X.findOne(r).classList.contains(Gt)||(o.classList.add(zt),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var s=h(this._element);G.one(this._element,l,function(){t.setTransitioning(!1),t._element.classList.remove(qt),t._element.classList.add(Xt),G.trigger(t._element,Qt.HIDDEN)}),g(this._element,s)}},n.setTransitioning=function(t){this._isTransitioning=t},n.dispose=function(){w.removeData(this._element,Bt),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},n._getConfig=function(t){return(t=o({},Vt,{},t)).toggle=Boolean(t.toggle),m(Ft,t,Yt),t},n._getDimension=function(){return this._element.classList.contains(Zt)?Zt:$t},n._getParent=function(){var t=this,e=this._config.parent;p(e)?"undefined"==typeof e.jquery&&"undefined"==typeof e[0]||(e=e[0]):e=X.findOne(e);var n='[data-toggle="collapse"][data-parent="'+e+'"]';return _(X.find(n,e)).forEach(function(e){var n=u(e),i=n?X.findOne(n):null;t._addAriaAndCollapsedClass(i,[e])}),e},n._addAriaAndCollapsedClass=function(t,e){if(t){var n=t.classList.contains(Gt);e.length&&e.forEach(function(t){n?t.classList.remove(zt):t.classList.add(zt),t.setAttribute("aria-expanded",n)})}},t._collapseInterface=function(e,n){var i=w.getData(e,Bt),r=o({},Vt,{},vt.getDataAttributes(e),{},"object"==typeof n&&n?n:{});if(!i&&r.toggle&&/show|hide/.test(n)&&(r.toggle=!1),i||(i=new t(e,r)),"string"==typeof n){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},t._jQueryInterface=function(e){return this.each(function(){t._collapseInterface(this,e)})},t._getInstance=function(t){return w.getData(t,Bt)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Vt}}]),t}();if(G.on(document,Qt.CLICK_DATA_API,Jt.DATA_TOGGLE,function(t){"A"===t.target.tagName&&t.preventDefault();var e=vt.getDataAttributes(this),n=u(this);_(X.find(n)).forEach(function(t){var n,i=w.getData(t,Bt);i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,te._collapseInterface(t,n)})}),"undefined"!=typeof c){var ee=c.fn[Ft];c.fn[Ft]=te._jQueryInterface,c.fn[Ft].Constructor=te,c.fn[Ft].noConflict=function(){return c.fn[Ft]=ee,te._jQueryInterface}}for(var ne="undefined"!=typeof window&&"undefined"!=typeof document,ie=["Edge","Trident","Firefox"],oe=0,re=0;re<ie.length;re+=1)if(ne&&navigator.userAgent.indexOf(ie[re])>=0){oe=1;break}var se=ne&&window.Promise?function(t){var e=!1;return function(){e||(e=!0,window.Promise.resolve().then(function(){e=!1,t()}))}}:function(t){var e=!1;return function(){e||(e=!0,setTimeout(function(){e=!1,t()},oe))}};function ae(t){return t&&"[object Function]"==={}.toString.call(t)}function le(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function ce(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function fe(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=le(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:fe(ce(t))}var ue=ne&&!(!window.MSInputMethodContext||!document.documentMode),he=ne&&/MSIE 10/.test(navigator.userAgent);function de(t){return 11===t?ue:10===t?he:ue||he}function pe(t){if(!t)return document.documentElement;for(var e=de(10)?document.body:null,n=t.offsetParent||null;n===e&&t.nextElementSibling;)n=(t=t.nextElementSibling).offsetParent;var i=n&&n.nodeName;return i&&"BODY"!==i&&"HTML"!==i?-1!==["TH","TD","TABLE"].indexOf(n.nodeName)&&"static"===le(n,"position")?pe(n):n:t?t.ownerDocument.documentElement:document.documentElement}function ge(t){return null!==t.parentNode?ge(t.parentNode):t}function me(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,r=document.createRange();r.setStart(i,0),r.setEnd(o,0);var s,a,l=r.commonAncestorContainer;if(t!==l&&e!==l||i.contains(o))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&pe(s.firstElementChild)!==s?pe(l):l;var c=ge(t);return c.host?me(c.host,e):me(t,ge(e).host)}function _e(t){var e="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var i=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||i)[e]}return t[e]}function ve(t,e){var n="x"===e?"Left":"Top",i="Left"===n?"Right":"Bottom";return parseFloat(t["border"+n+"Width"],10)+parseFloat(t["border"+i+"Width"],10)}function be(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],de(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function ye(t){var e=t.body,n=t.documentElement,i=de(10)&&getComputedStyle(n);return{height:be("Height",e,n,i),width:be("Width",e,n,i)}}var Ee=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},we=function(){function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}}(),De=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},Te=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t};function Ie(t){return Te({},t,{right:t.left+t.width,bottom:t.top+t.height})}function Ae(t){var e={};try{if(de(10)){e=t.getBoundingClientRect();var n=_e(t,"top"),i=_e(t,"left");e.top+=n,e.left+=i,e.bottom+=n,e.right+=i}else e=t.getBoundingClientRect()}catch(t){}var o={left:e.left,top:e.top,width:e.right-e.left,height:e.bottom-e.top},r="HTML"===t.nodeName?ye(t.ownerDocument):{},s=r.width||t.clientWidth||o.right-o.left,a=r.height||t.clientHeight||o.bottom-o.top,l=t.offsetWidth-s,c=t.offsetHeight-a;if(l||c){var f=le(t);l-=ve(f,"x"),c-=ve(f,"y"),o.width-=l,o.height-=c}return Ie(o)}function Oe(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=de(10),o="HTML"===e.nodeName,r=Ae(t),s=Ae(e),a=fe(t),l=le(e),c=parseFloat(l.borderTopWidth,10),f=parseFloat(l.borderLeftWidth,10);n&&o&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var u=Ie({top:r.top-s.top-c,left:r.left-s.left-f,width:r.width,height:r.height});if(u.marginTop=0,u.marginLeft=0,!i&&o){var h=parseFloat(l.marginTop,10),d=parseFloat(l.marginLeft,10);u.top-=c-h,u.bottom-=c-h,u.left-=f-d,u.right-=f-d,u.marginTop=h,u.marginLeft=d}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(u=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=_e(e,"top"),o=_e(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}(u,e)),u}function Le(t){if(!t||!t.parentElement||de())return document.documentElement;for(var e=t.parentElement;e&&"none"===le(e,"transform");)e=e.parentElement;return e||document.documentElement}function Se(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=o?Le(t):me(t,e);if("viewport"===i)r=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=Oe(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:_e(n),a=e?0:_e(n,"left");return Ie({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:r})}(s,o);else{var a=void 0;"scrollParent"===i?"BODY"===(a=fe(ce(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=Oe(a,s,o);if("HTML"!==a.nodeName||function t(e){var n=e.nodeName;if("BODY"===n||"HTML"===n)return!1;if("fixed"===le(e,"position"))return!0;var i=ce(e);return!!i&&t(i)}(s))r=l;else{var c=ye(t.ownerDocument),f=c.height,u=c.width;r.top+=l.top-l.marginTop,r.bottom=f+l.top,r.left+=l.left-l.marginLeft,r.right=u+l.left}}var h="number"==typeof(n=n||0);return r.left+=h?n:n.left||0,r.top+=h?n:n.top||0,r.right-=h?n:n.right||0,r.bottom-=h?n:n.bottom||0,r}function Ce(t,e,n,i,o){var r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0;if(-1===t.indexOf("auto"))return t;var s=Se(n,i,r,o),a={top:{width:s.width,height:e.top-s.top},right:{width:s.right-e.right,height:s.height},bottom:{width:s.width,height:s.bottom-e.bottom},left:{width:e.left-s.left,height:s.height}},l=Object.keys(a).map(function(t){return Te({key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight}),f=c.length>0?c[0].key:l[0].key,u=t.split("-")[1];return f+(u?"-"+u:"")}function Ne(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return Oe(n,i?Le(e):me(e,n),i)}function ke(t){var e=t.ownerDocument.defaultView.getComputedStyle(t),n=parseFloat(e.marginTop||0)+parseFloat(e.marginBottom||0),i=parseFloat(e.marginLeft||0)+parseFloat(e.marginRight||0);return{width:t.offsetWidth+i,height:t.offsetHeight+n}}function Pe(t){var e={left:"right",right:"left",bottom:"top",top:"bottom"};return t.replace(/left|right|bottom|top/g,function(t){return e[t]})}function xe(t,e,n){n=n.split("-")[0];var i=ke(t),o={width:i.width,height:i.height},r=-1!==["right","left"].indexOf(n),s=r?"top":"left",a=r?"left":"top",l=r?"height":"width",c=r?"width":"height";return o[s]=e[s]+e[l]/2-i[l]/2,o[a]=n===a?e[a]-i[c]:e[Pe(a)],o}function Me(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function He(t,e,n){return(void 0===n?t:t.slice(0,function(t,e,n){if(Array.prototype.findIndex)return t.findIndex(function(t){return t[e]===n});var i=Me(t,function(t){return t[e]===n});return t.indexOf(i)}(t,"name",n))).forEach(function(t){t.function&&console.warn("`modifier.function` is deprecated, use `modifier.fn`!");var n=t.function||t.fn;t.enabled&&ae(n)&&(e.offsets.popper=Ie(e.offsets.popper),e.offsets.reference=Ie(e.offsets.reference),e=n(e,t))}),e}function je(t,e){return t.some(function(t){var n=t.name;return t.enabled&&n===e})}function Re(t){for(var e=[!1,"ms","Webkit","Moz","O"],n=t.charAt(0).toUpperCase()+t.slice(1),i=0;i<e.length;i++){var o=e[i],r=o?""+o+n:t;if("undefined"!=typeof document.body.style[r])return r}return null}function We(t){var e=t.ownerDocument;return e?e.defaultView:window}function Ue(t,e,n,i){n.updateBound=i,We(t).addEventListener("resize",n.updateBound,{passive:!0});var o=fe(t);return function t(e,n,i,o){var r="BODY"===e.nodeName,s=r?e.ownerDocument.defaultView:e;s.addEventListener(n,i,{passive:!0}),r||t(fe(s.parentNode),n,i,o),o.push(s)}(o,"scroll",n.updateBound,n.scrollParents),n.scrollElement=o,n.eventsEnabled=!0,n}function Fe(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,We(t).removeEventListener("resize",e.updateBound),e.scrollParents.forEach(function(t){t.removeEventListener("scroll",e.updateBound)}),e.updateBound=null,e.scrollParents=[],e.scrollElement=null,e.eventsEnabled=!1,e))}function Be(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function Ke(t,e){Object.keys(e).forEach(function(n){var i="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&Be(e[n])&&(i="px"),t.style[n]=e[n]+i})}var Ve=ne&&/Firefox/i.test(navigator.userAgent);function Ye(t,e,n){var i=Me(t,function(t){return t.name===e}),o=!!i&&t.some(function(t){return t.name===n&&t.enabled&&t.order<i.order});if(!o){var r="`"+e+"`",s="`"+n+"`";console.warn(s+" modifier is required by "+r+" modifier in order to work, be sure to include it before "+r+"!")}return o}var Qe=["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"],Ge=Qe.slice(3);function Xe(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Ge.indexOf(t),i=Ge.slice(n+1).concat(Ge.slice(0,n));return e?i.reverse():i}var qe={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function ze(t,e,n,i){var o=[0,0],r=-1!==["right","left"].indexOf(i),s=t.split(/(\+|\-)/).map(function(t){return t.trim()}),a=s.indexOf(Me(s,function(t){return-1!==t.search(/,|\s/)}));s[a]&&-1===s[a].indexOf(",")&&console.warn("Offsets separated by white space(s) are deprecated, use a comma (,) instead.");var l=/\s*,\s*|\s+/,c=-1!==a?[s.slice(0,a).concat([s[a].split(l)[0]]),[s[a].split(l)[1]].concat(s.slice(a+1))]:[s];return(c=c.map(function(t,i){var o=(1===i?!r:r)?"height":"width",s=!1;return t.reduce(function(t,e){return""===t[t.length-1]&&-1!==["+","-"].indexOf(e)?(t[t.length-1]=e,s=!0,t):s?(t[t.length-1]+=e,s=!1,t):t.concat(e)},[]).map(function(t){return function(t,e,n,i){var o=t.match(/((?:\-|\+)?\d*\.?\d*)(.*)/),r=+o[1],s=o[2];if(!r)return t;if(0===s.indexOf("%")){var a=void 0;switch(s){case"%p":a=n;break;case"%":case"%r":default:a=i}return Ie(a)[e]/100*r}if("vh"===s||"vw"===s)return("vh"===s?Math.max(document.documentElement.clientHeight,window.innerHeight||0):Math.max(document.documentElement.clientWidth,window.innerWidth||0))/100*r;return r}(t,o,e,n)})})).forEach(function(t,e){t.forEach(function(n,i){Be(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))})}),o}var Ze={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var o=t.offsets,r=o.reference,s=o.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",f={start:De({},l,r[l]),end:De({},l,r[l]+r[c]-s[c])};t.offsets.popper=Te({},s,f[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,o=t.offsets,r=o.popper,s=o.reference,a=i.split("-")[0],l=void 0;return l=Be(+n)?[+n,0]:ze(n,r,s,a),"left"===a?(r.top+=l[0],r.left-=l[1]):"right"===a?(r.top+=l[0],r.left+=l[1]):"top"===a?(r.left+=l[0],r.top-=l[1]):"bottom"===a&&(r.left+=l[0],r.top+=l[1]),t.popper=r,t},offset:0},preventOverflow:{order:300,enabled:!0,fn:function(t,e){var n=e.boundariesElement||pe(t.instance.popper);t.instance.reference===n&&(n=pe(n));var i=Re("transform"),o=t.instance.popper.style,r=o.top,s=o.left,a=o[i];o.top="",o.left="",o[i]="";var l=Se(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);o.top=r,o.left=s,o[i]=a,e.boundaries=l;var c=e.priority,f=t.offsets.popper,u={primary:function(t){var n=f[t];return f[t]<l[t]&&!e.escapeWithReference&&(n=Math.max(f[t],l[t])),De({},t,n)},secondary:function(t){var n="right"===t?"left":"top",i=f[n];return f[t]>l[t]&&!e.escapeWithReference&&(i=Math.min(f[n],l[t]-("right"===t?f.width:f.height))),De({},n,i)}};return c.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";f=Te({},f,u[e](t))}),t.offsets.popper=f,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<r(i[l])&&(t.offsets.popper[l]=r(i[l])-n[c]),n[l]>r(i[a])&&(t.offsets.popper[l]=r(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!Ye(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(o),c=l?"height":"width",f=l?"Top":"Left",u=f.toLowerCase(),h=l?"left":"top",d=l?"bottom":"right",p=ke(i)[c];a[d]-p<s[u]&&(t.offsets.popper[u]-=s[u]-(a[d]-p)),a[u]+p>s[d]&&(t.offsets.popper[u]+=a[u]+p-s[d]),t.offsets.popper=Ie(t.offsets.popper);var g=a[u]+a[c]/2-p/2,m=le(t.instance.popper),_=parseFloat(m["margin"+f],10),v=parseFloat(m["border"+f+"Width"],10),b=g-t.offsets.popper[u]-_-v;return b=Math.max(Math.min(s[c]-p,b),0),t.arrowElement=i,t.offsets.arrow=(De(n={},u,Math.round(b)),De(n,h,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(je(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=Se(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=Pe(i),r=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case qe.FLIP:s=[i,o];break;case qe.CLOCKWISE:s=Xe(i);break;case qe.COUNTERCLOCKWISE:s=Xe(i,!0);break;default:s=e.behavior}return s.forEach(function(a,l){if(i!==a||s.length===l+1)return t;i=t.placement.split("-")[0],o=Pe(i);var c=t.offsets.popper,f=t.offsets.reference,u=Math.floor,h="left"===i&&u(c.right)>u(f.left)||"right"===i&&u(c.left)<u(f.right)||"top"===i&&u(c.bottom)>u(f.top)||"bottom"===i&&u(c.top)<u(f.bottom),d=u(c.left)<u(n.left),p=u(c.right)>u(n.right),g=u(c.top)<u(n.top),m=u(c.bottom)>u(n.bottom),_="left"===i&&d||"right"===i&&p||"top"===i&&g||"bottom"===i&&m,v=-1!==["top","bottom"].indexOf(i),b=!!e.flipVariations&&(v&&"start"===r&&d||v&&"end"===r&&p||!v&&"start"===r&&g||!v&&"end"===r&&m),y=!!e.flipVariationsByContent&&(v&&"start"===r&&p||v&&"end"===r&&d||!v&&"start"===r&&m||!v&&"end"===r&&g),E=b||y;(h||_||E)&&(t.flipped=!0,(h||_)&&(i=s[l+1]),E&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=i+(r?"-"+r:""),t.offsets.popper=Te({},t.offsets.popper,xe(t.instance.popper,t.offsets.reference,t.placement)),t=He(t.instance.modifiers,t,"flip"))}),t},behavior:"flip",padding:5,boundariesElement:"viewport",flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(t){var e=t.placement,n=e.split("-")[0],i=t.offsets,o=i.popper,r=i.reference,s=-1!==["left","right"].indexOf(n),a=-1===["top","left"].indexOf(n);return o[s?"left":"top"]=r[n]-(a?o[s?"width":"height"]:0),t.placement=Pe(e),t.offsets.popper=Ie(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!Ye(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=Me(t.instance.modifiers,function(t){return"preventOverflow"===t.name}).boundaries;if(e.bottom<n.top||e.left>n.right||e.top>n.bottom||e.right<n.left){if(!0===t.hide)return t;t.hide=!0,t.attributes["x-out-of-boundaries"]=""}else{if(!1===t.hide)return t;t.hide=!1,t.attributes["x-out-of-boundaries"]=!1}return t}},computeStyle:{order:850,enabled:!0,fn:function(t,e){var n=e.x,i=e.y,o=t.offsets.popper,r=Me(t.instance.modifiers,function(t){return"applyStyle"===t.name}).gpuAcceleration;void 0!==r&&console.warn("WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!");var s=void 0!==r?r:e.gpuAcceleration,a=pe(t.instance.popper),l=Ae(a),c={position:o.position},f=function(t,e){var n=t.offsets,i=n.popper,o=n.reference,r=Math.round,s=Math.floor,a=function(t){return t},l=r(o.width),c=r(i.width),f=-1!==["left","right"].indexOf(t.placement),u=-1!==t.placement.indexOf("-"),h=e?f||u||l%2==c%2?r:s:a,d=e?r:a;return{left:h(l%2==1&&c%2==1&&!u&&e?i.left-1:i.left),top:d(i.top),bottom:d(i.bottom),right:h(i.right)}}(t,window.devicePixelRatio<2||!Ve),u="bottom"===n?"top":"bottom",h="right"===i?"left":"right",d=Re("transform"),p=void 0,g=void 0;if(g="bottom"===u?"HTML"===a.nodeName?-a.clientHeight+f.bottom:-l.height+f.bottom:f.top,p="right"===h?"HTML"===a.nodeName?-a.clientWidth+f.right:-l.width+f.right:f.left,s&&d)c[d]="translate3d("+p+"px, "+g+"px, 0)",c[u]=0,c[h]=0,c.willChange="transform";else{var m="bottom"===u?-1:1,_="right"===h?-1:1;c[u]=g*m,c[h]=p*_,c.willChange=u+", "+h}var v={"x-placement":t.placement};return t.attributes=Te({},v,t.attributes),t.styles=Te({},c,t.styles),t.arrowStyles=Te({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return Ke(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach(function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&Ke(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){var r=Ne(o,e,t,n.positionFixed),s=Ce(n.placement,r,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),Ke(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},$e=function(){function t(e,n){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Ee(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=se(this.update.bind(this)),this.options=Te({},t.Defaults,o),this.state={isDestroyed:!1,isCreated:!1,scrollParents:[]},this.reference=e&&e.jquery?e[0]:e,this.popper=n&&n.jquery?n[0]:n,this.options.modifiers={},Object.keys(Te({},t.Defaults.modifiers,o.modifiers)).forEach(function(e){i.options.modifiers[e]=Te({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return Te({name:t},i.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&ae(t.onLoad)&&t.onLoad(i.reference,i.popper,i.options,t,i.state)}),this.update();var r=this.options.eventsEnabled;r&&this.enableEventListeners(),this.state.eventsEnabled=r}return we(t,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=Ne(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=Ce(this.options.placement,t.offsets.reference,this.popper,this.reference,this.options.modifiers.flip.boundariesElement,this.options.modifiers.flip.padding),t.originalPlacement=t.placement,t.positionFixed=this.options.positionFixed,t.offsets.popper=xe(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=He(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,je(this.modifiers,"applyStyle")&&(this.popper.removeAttribute("x-placement"),this.popper.style.position="",this.popper.style.top="",this.popper.style.left="",this.popper.style.right="",this.popper.style.bottom="",this.popper.style.willChange="",this.popper.style[Re("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=Ue(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return Fe.call(this)}}]),t}();$e.Utils=("undefined"!=typeof window?window:global).PopperUtils,$e.placements=Qe,$e.Defaults=Ze;var Je="dropdown",tn="bs.dropdown",en="."+tn,nn=new RegExp("38|40|27"),on={HIDE:"hide"+en,HIDDEN:"hidden"+en,SHOW:"show"+en,SHOWN:"shown"+en,CLICK:"click"+en,CLICK_DATA_API:"click"+en+".data-api",KEYDOWN_DATA_API:"keydown"+en+".data-api",KEYUP_DATA_API:"keyup"+en+".data-api"},rn="disabled",sn="show",an="dropup",ln="dropright",cn="dropleft",fn="dropdown-menu-right",un="position-static",hn='[data-toggle="dropdown"]',dn=".dropdown form",pn=".dropdown-menu",gn=".navbar-nav",mn=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",_n="top-start",vn="top-end",bn="bottom-start",yn="bottom-end",En="right-start",wn="left-start",Dn={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Tn={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},In=function(){function t(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners(),w.setData(t,tn,this)}var n=t.prototype;return n.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains(rn)){var e=t._getParentFromElement(this._element),n=this._menu.classList.contains(sn);if(t._clearMenus(),!n){var i={relatedTarget:this._element};if(!G.trigger(e,on.SHOW,i).defaultPrevented){if(!this._inNavbar){if("undefined"==typeof $e)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var o=this._element;"parent"===this._config.reference?o=e:p(this._config.reference)&&(o=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&e.classList.add(un),this._popper=new $e(o,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&!_(X.closest(e,gn)).length&&_(document.body.children).forEach(function(t){return G.on(t,"mouseover",null,function(){})}),this._element.focus(),this._element.setAttribute("aria-expanded",!0),vt.toggleClass(this._menu,sn),vt.toggleClass(e,sn),G.trigger(e,on.SHOWN,i)}}}},n.show=function(){if(!(this._element.disabled||this._element.classList.contains(rn)||this._menu.classList.contains(sn))){var e=t._getParentFromElement(this._element),n={relatedTarget:this._element};G.trigger(e,on.SHOW,n).defaultPrevented||(vt.toggleClass(this._menu,sn),vt.toggleClass(e,sn),G.trigger(e,on.SHOWN,n))}},n.hide=function(){if(!this._element.disabled&&!this._element.classList.contains(rn)&&this._menu.classList.contains(sn)){var e=t._getParentFromElement(this._element),n={relatedTarget:this._element};G.trigger(e,on.HIDE,n).defaultPrevented||(vt.toggleClass(this._menu,sn),vt.toggleClass(e,sn),G.trigger(e,on.HIDDEN,n))}},n.dispose=function(){w.removeData(this._element,tn),G.off(this._element,en),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},n.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},n._addEventListeners=function(){var t=this;G.on(this._element,on.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},n._getConfig=function(t){return t=o({},this.constructor.Default,{},vt.getDataAttributes(this._element),{},t),m(Je,t,this.constructor.DefaultType),t},n._getMenuElement=function(){var e=t._getParentFromElement(this._element);return X.findOne(pn,e)},n._getPlacement=function(){var t=this._element.parentNode,e=bn;return t.classList.contains(an)?(e=_n,this._menu.classList.contains(fn)&&(e=vn)):t.classList.contains(ln)?e=En:t.classList.contains(cn)?e=wn:this._menu.classList.contains(fn)&&(e=yn),e},n._detectNavbar=function(){return Boolean(X.closest(this._element,".navbar"))},n._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=o({},e.offsets,{},t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},n._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),t},t._dropdownInterface=function(e,n){var i=w.getData(e,tn);if(i||(i=new t(e,"object"==typeof n?n:null)),"string"==typeof n){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},t._jQueryInterface=function(e){return this.each(function(){t._dropdownInterface(this,e)})},t._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var n=_(X.find(hn)),i=0,o=n.length;i<o;i++){var r=t._getParentFromElement(n[i]),s=w.getData(n[i],tn),a={relatedTarget:n[i]};if(e&&"click"===e.type&&(a.clickEvent=e),s){var l=s._menu;if(r.classList.contains(sn))if(!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&r.contains(e.target)))G.trigger(r,on.HIDE,a).defaultPrevented||("ontouchstart"in document.documentElement&&_(document.body.children).forEach(function(t){return G.off(t,"mouseover",null,function(){})}),n[i].setAttribute("aria-expanded","false"),l.classList.remove(sn),r.classList.remove(sn),G.trigger(r,on.HIDDEN,a))}}},t._getParentFromElement=function(t){var e,n=u(t);return n&&(e=X.findOne(n)),e||t.parentNode},t._dataApiKeydownHandler=function(e){if((/input|textarea/i.test(e.target.tagName)?!(32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||X.closest(e.target,pn))):nn.test(e.which))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!this.classList.contains(rn))){var n=t._getParentFromElement(this),i=n.classList.contains(sn);if(!i||i&&(27===e.which||32===e.which))return 27===e.which&&X.findOne(hn,n).focus(),void t._clearMenus();var o=_(X.find(mn,n));if(o.length){var r=o.indexOf(e.target);38===e.which&&r>0&&r--,40===e.which&&r<o.length-1&&r++,r<0&&(r=0),o[r].focus()}}},t._getInstance=function(t){return w.getData(t,tn)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Dn}},{key:"DefaultType",get:function(){return Tn}}]),t}();if(G.on(document,on.KEYDOWN_DATA_API,hn,In._dataApiKeydownHandler),G.on(document,on.KEYDOWN_DATA_API,pn,In._dataApiKeydownHandler),G.on(document,on.CLICK_DATA_API,In._clearMenus),G.on(document,on.KEYUP_DATA_API,In._clearMenus),G.on(document,on.CLICK_DATA_API,hn,function(t){t.preventDefault(),t.stopPropagation(),In._dropdownInterface(this,"toggle")}),G.on(document,on.CLICK_DATA_API,dn,function(t){return t.stopPropagation()}),"undefined"!=typeof c){var An=c.fn[Je];c.fn[Je]=In._jQueryInterface,c.fn[Je].Constructor=In,c.fn[Je].noConflict=function(){return c.fn[Je]=An,In._jQueryInterface}}var On="bs.modal",Ln="."+On,Sn={backdrop:!0,keyboard:!0,focus:!0,show:!0},Cn={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Nn={HIDE:"hide"+Ln,HIDDEN:"hidden"+Ln,SHOW:"show"+Ln,SHOWN:"shown"+Ln,FOCUSIN:"focusin"+Ln,RESIZE:"resize"+Ln,CLICK_DISMISS:"click.dismiss"+Ln,KEYDOWN_DISMISS:"keydown.dismiss"+Ln,MOUSEUP_DISMISS:"mouseup.dismiss"+Ln,MOUSEDOWN_DISMISS:"mousedown.dismiss"+Ln,CLICK_DATA_API:"click"+Ln+".data-api"},kn="modal-dialog-scrollable",Pn="modal-scrollbar-measure",xn="modal-backdrop",Mn="modal-open",Hn="fade",jn="show",Rn={DIALOG:".modal-dialog",MODAL_BODY:".modal-body",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top"},Wn=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=X.findOne(Rn.DIALOG,t),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,w.setData(t,On,this)}var n=t.prototype;return n.toggle=function(t){return this._isShown?this.hide():this.show(t)},n.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){this._element.classList.contains(Hn)&&(this._isTransitioning=!0);var n=G.trigger(this._element,Nn.SHOW,{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),G.on(this._element,Nn.CLICK_DISMISS,Rn.DATA_DISMISS,function(t){return e.hide(t)}),G.on(this._dialog,Nn.MOUSEDOWN_DISMISS,function(){G.one(e._element,Nn.MOUSEUP_DISMISS,function(t){t.target===e._element&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},n.hide=function(t){var e=this;if((t&&t.preventDefault(),this._isShown&&!this._isTransitioning)&&!G.trigger(this._element,Nn.HIDE).defaultPrevented){this._isShown=!1;var n=this._element.classList.contains(Hn);if(n&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),G.off(document,Nn.FOCUSIN),this._element.classList.remove(jn),G.off(this._element,Nn.CLICK_DISMISS),G.off(this._dialog,Nn.MOUSEDOWN_DISMISS),n){var i=h(this._element);G.one(this._element,l,function(t){return e._hideModal(t)}),g(this._element,i)}else this._hideModal()}},n.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return G.off(t,Ln)}),G.off(document,Nn.FOCUSIN),w.removeData(this._element,On),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},n.handleUpdate=function(){this._adjustDialog()},n._getConfig=function(t){return t=o({},Sn,{},t),m("modal",t,Cn),t},n._showElement=function(t){var e=this,n=this._element.classList.contains(Hn);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._dialog.classList.contains(kn)?X.findOne(Rn.MODAL_BODY,this._dialog).scrollTop=0:this._element.scrollTop=0,n&&y(this._element),this._element.classList.add(jn),this._config.focus&&this._enforceFocus();var i=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,G.trigger(e._element,Nn.SHOWN,{relatedTarget:t})};if(n){var o=h(this._dialog);G.one(this._dialog,l,i),g(this._dialog,o)}else i()},n._enforceFocus=function(){var t=this;G.off(document,Nn.FOCUSIN),G.on(document,Nn.FOCUSIN,function(e){document===e.target||t._element===e.target||t._element.contains(e.target)||t._element.focus()})},n._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?G.on(this._element,Nn.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):G.off(this._element,Nn.KEYDOWN_DISMISS)},n._setResizeEvent=function(){var t=this;this._isShown?G.on(window,Nn.RESIZE,function(){return t._adjustDialog()}):G.off(window,Nn.RESIZE)},n._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){document.body.classList.remove(Mn),t._resetAdjustments(),t._resetScrollbar(),G.trigger(t._element,Nn.HIDDEN)})},n._removeBackdrop=function(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null},n._showBackdrop=function(t){var e=this,n=this._element.classList.contains(Hn)?Hn:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=xn,n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),G.on(this._element,Nn.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&y(this._backdrop),this._backdrop.classList.add(jn),!n)return void t();var i=h(this._backdrop);G.one(this._backdrop,l,t),g(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove(jn);var o=function(){e._removeBackdrop(),t()};if(this._element.classList.contains(Hn)){var r=h(this._backdrop);G.one(this._backdrop,l,o),g(this._backdrop,r)}else o()}else t()},n._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},n._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},n._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},n._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){_(X.find(Rn.FIXED_CONTENT)).forEach(function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];vt.setDataAttribute(e,"padding-right",n),e.style.paddingRight=parseFloat(i)+t._scrollbarWidth+"px"}),_(X.find(Rn.STICKY_CONTENT)).forEach(function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];vt.setDataAttribute(e,"margin-right",n),e.style.marginRight=parseFloat(i)-t._scrollbarWidth+"px"});var e=document.body.style.paddingRight,n=window.getComputedStyle(document.body)["padding-right"];vt.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add(Mn)},n._resetScrollbar=function(){_(X.find(Rn.FIXED_CONTENT)).forEach(function(t){var e=vt.getDataAttribute(t,"padding-right");"undefined"!=typeof e&&(vt.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)}),_(X.find(""+Rn.STICKY_CONTENT)).forEach(function(t){var e=vt.getDataAttribute(t,"margin-right");"undefined"!=typeof e&&(vt.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)});var t=vt.getDataAttribute(document.body,"padding-right");"undefined"==typeof t?document.body.style.paddingRight="":(vt.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},n._getScrollbarWidth=function(){var t=document.createElement("div");t.className=Pn,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t._jQueryInterface=function(e,n){return this.each(function(){var i=w.getData(this,On),r=o({},Sn,{},vt.getDataAttributes(this),{},"object"==typeof e&&e?e:{});if(i||(i=new t(this,r)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e](n)}else r.show&&i.show(n)})},t._getInstance=function(t){return w.getData(t,On)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Sn}}]),t}();if(G.on(document,Nn.CLICK_DATA_API,Rn.DATA_TOGGLE,function(t){var e=this,n=u(this),i=X.findOne(n);"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),G.one(i,Nn.SHOW,function(t){t.defaultPrevented||G.one(i,Nn.HIDDEN,function(){v(e)&&e.focus()})});var r=w.getData(i,On);if(!r){var s=o({},vt.getDataAttributes(i),{},vt.getDataAttributes(this));r=new Wn(i,s)}r.show(this)}),"undefined"!=typeof c){var Un=c.fn.modal;c.fn.modal=Wn._jQueryInterface,c.fn.modal.Constructor=Wn,c.fn.modal.noConflict=function(){return c.fn.modal=Un,Wn._jQueryInterface}}var Fn=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Bn=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,Kn=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,Vn=function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Fn.indexOf(n)||Boolean(t.nodeValue.match(Bn)||t.nodeValue.match(Kn));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1},Yn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function Qn(t,e,n){if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),r=_(i.body.querySelectorAll("*")),s=function(t,n){var i=r[t],s=i.nodeName.toLowerCase();if(-1===o.indexOf(s))return i.parentNode.removeChild(i),"continue";var a=_(i.attributes),l=[].concat(e["*"]||[],e[s]||[]);a.forEach(function(t){Vn(t,l)||i.removeAttribute(t.nodeName)})},a=0,l=r.length;a<l;a++)s(a);return i.body.innerHTML}var Gn="tooltip",Xn=new RegExp("(^|\\s)bs-tooltip\\S+","g"),qn=["sanitize","whiteList","sanitizeFn"],zn={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},Zn={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},$n={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Yn},Jn="show",ti="out",ei={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},ni="fade",ii="show",oi=".tooltip-inner",ri="hover",si="focus",ai="click",li="manual",ci=function(){function t(t,e){if("undefined"==typeof $e)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners(),w.setData(t,this.constructor.DATA_KEY,this)}var n=t.prototype;return n.enable=function(){this._isEnabled=!0},n.disable=function(){this._isEnabled=!1},n.toggleEnabled=function(){this._isEnabled=!this._isEnabled},n.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=w.getData(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),w.setData(t.delegateTarget,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(ii))return void this._leave(null,this);this._enter(null,this)}},n.dispose=function(){clearTimeout(this._timeout),w.removeData(this.element,this.constructor.DATA_KEY),G.off(this.element,this.constructor.EVENT_KEY),G.off(X.closest(this.element,".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},n.show=function(){var t=this;if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var e=G.trigger(this.element,this.constructor.Event.SHOW),n=function t(e){if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){var n=e.getRootNode();return n instanceof ShadowRoot?n:null}return e instanceof ShadowRoot?e:e.parentNode?t(e.parentNode):null}(this.element),i=null===n?this.element.ownerDocument.documentElement.contains(this.element):n.contains(this.element);if(e.defaultPrevented||!i)return;var o=this.getTipElement(),r=f(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&o.classList.add(ni);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(s);this._addAttachmentClass(a);var c=this._getContainer();w.setData(o,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||c.appendChild(o),G.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new $e(this.element,o,{placement:a,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:"."+this.constructor.NAME+"-arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){return t._handlePopperPlacementChange(e)}}),o.classList.add(ii),"ontouchstart"in document.documentElement&&_(document.body.children).forEach(function(t){G.on(t,"mouseover",function(){})});var u=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,G.trigger(t.element,t.constructor.Event.SHOWN),e===ti&&t._leave(null,t)};if(this.tip.classList.contains(ni)){var d=h(this.tip);G.one(this.tip,l,u),g(this.tip,d)}else u()}},n.hide=function(){var t=this,e=this.getTipElement(),n=function(){t._hoverState!==Jn&&e.parentNode&&e.parentNode.removeChild(e),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),G.trigger(t.element,t.constructor.Event.HIDDEN),t._popper.destroy()};if(!G.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){if(e.classList.remove(ii),"ontouchstart"in document.documentElement&&_(document.body.children).forEach(function(t){return G.off(t,"mouseover",b)}),this._activeTrigger[ai]=!1,this._activeTrigger[si]=!1,this._activeTrigger[ri]=!1,this.tip.classList.contains(ni)){var i=h(e);G.one(e,l,n),g(e,i)}else n();this._hoverState=""}},n.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},n.isWithContent=function(){return Boolean(this.getTitle())},n.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},n.setContent=function(){var t=this.getTipElement();this.setElementContent(X.findOne(oi,t),this.getTitle()),t.classList.remove(ni),t.classList.remove(ii)},n.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&p(e)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.innerText=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=Qn(e,this.config.whiteList,this.config.sanitizeFn)),t.innerHTML=e):t.innerText=e)},n.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},n._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+t)},n._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=o({},e.offsets,{},t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},n._getContainer=function(){return!1===this.config.container?document.body:p(this.config.container)?this.config.container:X.findOne(this.config.container)},n._getAttachment=function(t){return Zn[t.toUpperCase()]},n._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(e){if("click"===e)G.on(t.element,t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(e!==li){var n=e===ri?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i=e===ri?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;G.on(t.element,n,t.config.selector,function(e){return t._enter(e)}),G.on(t.element,i,t.config.selector,function(e){return t._leave(e)})}}),this._hideModalHandler=function(){t.element&&t.hide()},G.on(X.closest(this.element,".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=o({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},n._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},n._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||w.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),w.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?si:ri]=!0),e.getTipElement().classList.contains(ii)||e._hoverState===Jn?e._hoverState=Jn:(clearTimeout(e._timeout),e._hoverState=Jn,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===Jn&&e.show()},e.config.delay.show):e.show())},n._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||w.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),w.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?si:ri]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=ti,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===ti&&e.hide()},e.config.delay.hide):e.hide())},n._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},n._getConfig=function(t){var e=vt.getDataAttributes(this.element);return Object.keys(e).forEach(function(t){-1!==qn.indexOf(t)&&delete e[t]}),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=o({},this.constructor.Default,{},e,{},"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),m(Gn,t,this.constructor.DefaultType),t.sanitize&&(t.template=Qn(t.template,t.whiteList,t.sanitizeFn)),t},n._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},n._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(Xn);null!==e&&e.length&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},n._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(t.placement))},n._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(t.classList.remove(ni),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t._jQueryInterface=function(e){return this.each(function(){var n=w.getData(this,"bs.tooltip"),i="object"==typeof e&&e;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,i)),"string"==typeof e)){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return w.getData(t,"bs.tooltip")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return $n}},{key:"NAME",get:function(){return Gn}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return ei}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return zn}}]),t}();if("undefined"!=typeof c){var fi=c.fn.tooltip;c.fn.tooltip=ci._jQueryInterface,c.fn.tooltip.Constructor=ci,c.fn.tooltip.noConflict=function(){return c.fn.tooltip=fi,ci._jQueryInterface}}var ui="popover",hi=new RegExp("(^|\\s)bs-popover\\S+","g"),di=o({},ci.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),pi=o({},ci.DefaultType,{content:"(string|element|function)"}),gi="fade",mi="show",_i=".popover-header",vi=".popover-body",bi={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},yi=function(t){var n,i;function o(){return t.apply(this,arguments)||this}i=t,(n=o).prototype=Object.create(i.prototype),n.prototype.constructor=n,n.__proto__=i;var r=o.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},r.setContent=function(){var t=this.getTipElement();this.setElementContent(X.findOne(_i,t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(X.findOne(vi,t),e),t.classList.remove(gi),t.classList.remove(mi)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(hi);null!==e&&e.length>0&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},o._jQueryInterface=function(t){return this.each(function(){var e=w.getData(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),w.setData(this,"bs.popover",e)),"string"==typeof t)){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})},o._getInstance=function(t){return w.getData(t,"bs.popover")},e(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return di}},{key:"NAME",get:function(){return ui}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return bi}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return pi}}]),o}(ci);if("undefined"!=typeof c){var Ei=c.fn.popover;c.fn.popover=yi._jQueryInterface,c.fn.popover.Constructor=yi,c.fn.popover.noConflict=function(){return c.fn.popover=Ei,yi._jQueryInterface}}var wi="scrollspy",Di="bs.scrollspy",Ti="."+Di,Ii={offset:10,method:"auto",target:""},Ai={offset:"number",method:"string",target:"(string|element)"},Oi={ACTIVATE:"activate"+Ti,SCROLL:"scroll"+Ti,LOAD_DATA_API:"load"+Ti+".data-api"},Li={DROPDOWN_ITEM:"dropdown-item",ACTIVE:"active"},Si={DATA_SPY:'[data-spy="scroll"]',NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_TOGGLE:".dropdown-toggle"},Ci="offset",Ni="position",ki=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+Si.NAV_LINKS+","+this._config.target+" "+Si.LIST_ITEMS+","+this._config.target+" ."+Li.DROPDOWN_ITEM,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,G.on(this._scrollElement,Oi.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process(),w.setData(t,Di,this)}var n=t.prototype;return n.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?Ci:Ni,n="auto"===this._config.method?e:this._config.method,i=n===Ni?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),_(X.find(this._selector)).map(function(t){var e,o=u(t);if(o&&(e=X.findOne(o)),e){var r=e.getBoundingClientRect();if(r.width||r.height)return[vt[n](e).top+i,o]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},n.dispose=function(){w.removeData(this._element,Di),G.off(this._scrollElement,Ti),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},n._getConfig=function(t){if("string"!=typeof(t=o({},Ii,{},"object"==typeof t&&t?t:{})).target){var e=t.target.id;e||(e=f(wi),t.target.id=e),t.target="#"+e}return m(wi,t,Ai),t},n._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},n._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},n._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},n._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},n._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map(function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'}),n=X.findOne(e.join(","));n.classList.contains(Li.DROPDOWN_ITEM)?(X.findOne(Si.DROPDOWN_TOGGLE,X.closest(n,Si.DROPDOWN)).classList.add(Li.ACTIVE),n.classList.add(Li.ACTIVE)):(n.classList.add(Li.ACTIVE),X.parents(n,Si.NAV_LIST_GROUP).forEach(function(t){X.prev(t,Si.NAV_LINKS+", "+Si.LIST_ITEMS).forEach(function(t){return t.classList.add(Li.ACTIVE)}),X.prev(t,Si.NAV_ITEMS).forEach(function(t){X.children(t,Si.NAV_LINKS).forEach(function(t){return t.classList.add(Li.ACTIVE)})})})),G.trigger(this._scrollElement,Oi.ACTIVATE,{relatedTarget:t})},n._clear=function(){_(X.find(this._selector)).filter(function(t){return t.classList.contains(Li.ACTIVE)}).forEach(function(t){return t.classList.remove(Li.ACTIVE)})},t._jQueryInterface=function(e){return this.each(function(){var n=w.getData(this,Di);if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return w.getData(t,Di)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ii}}]),t}();if(G.on(window,Oi.LOAD_DATA_API,function(){_(X.find(Si.DATA_SPY)).forEach(function(t){return new ki(t,vt.getDataAttributes(t))})}),"undefined"!=typeof c){var Pi=c.fn[wi];c.fn[wi]=ki._jQueryInterface,c.fn[wi].Constructor=ki,c.fn[wi].noConflict=function(){return c.fn[wi]=Pi,ki._jQueryInterface}}var xi="bs.tab",Mi="."+xi,Hi={HIDE:"hide"+Mi,HIDDEN:"hidden"+Mi,SHOW:"show"+Mi,SHOWN:"shown"+Mi,CLICK_DATA_API:"click"+Mi+".data-api"},ji="dropdown-menu",Ri="active",Wi="disabled",Ui="fade",Fi="show",Bi=".dropdown",Ki=".nav, .list-group",Vi=".active",Yi=":scope > li > .active",Qi='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Gi=".dropdown-toggle",Xi=":scope > .dropdown-menu .active",qi=function(){function t(t){this._element=t,w.setData(this._element,xi,this)}var n=t.prototype;return n.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(Ri)||this._element.classList.contains(Wi))){var e,n,i=X.closest(this._element,Ki),o=u(this._element);if(i){var r="UL"===i.nodeName||"OL"===i.nodeName?Yi:Vi;n=(n=_(X.find(r,i)))[n.length-1]}var s=null;if(n&&(s=G.trigger(n,Hi.HIDE,{relatedTarget:this._element})),!(G.trigger(this._element,Hi.SHOW,{relatedTarget:n}).defaultPrevented||null!==s&&s.defaultPrevented)){o&&(e=X.findOne(o)),this._activate(this._element,i);var a=function(){G.trigger(n,Hi.HIDDEN,{relatedTarget:t._element}),G.trigger(t._element,Hi.SHOWN,{relatedTarget:n})};e?this._activate(e,e.parentNode,a):a()}}},n.dispose=function(){w.removeData(this._element,xi),this._element=null},n._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?X.children(e,Vi):X.find(Yi,e))[0],r=n&&o&&o.classList.contains(Ui),s=function(){return i._transitionComplete(t,o,n)};if(o&&r){var a=h(o);o.classList.remove(Fi),G.one(o,l,s),g(o,a)}else s()},n._transitionComplete=function(t,e,n){if(e){e.classList.remove(Ri);var i=X.findOne(Xi,e.parentNode);i&&i.classList.remove(Ri),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add(Ri),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),y(t),t.classList.contains(Ui)&&t.classList.add(Fi),t.parentNode&&t.parentNode.classList.contains(ji))&&(X.closest(t,Bi)&&_(X.find(Gi)).forEach(function(t){return t.classList.add(Ri)}),t.setAttribute("aria-expanded",!0));n&&n()},t._jQueryInterface=function(e){return this.each(function(){var n=w.getData(this,xi)||new t(this);if("string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return w.getData(t,xi)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(G.on(document,Hi.CLICK_DATA_API,Qi,function(t){t.preventDefault(),(w.getData(this,xi)||new qi(this)).show()}),"undefined"!=typeof c){var zi=c.fn.tab;c.fn.tab=qi._jQueryInterface,c.fn.tab.Constructor=qi,c.fn.tab.noConflict=function(){return c.fn.tab=zi,qi._jQueryInterface}}var Zi="bs.toast",$i="."+Zi,Ji={CLICK_DISMISS:"click.dismiss"+$i,HIDE:"hide"+$i,HIDDEN:"hidden"+$i,SHOW:"show"+$i,SHOWN:"shown"+$i},to="fade",eo="hide",no="show",io="showing",oo={animation:"boolean",autohide:"boolean",delay:"number"},ro={animation:!0,autohide:!0,delay:500},so='[data-dismiss="toast"]',ao=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),w.setData(t,Zi,this)}var n=t.prototype;return n.show=function(){var t=this;if(!G.trigger(this._element,Ji.SHOW).defaultPrevented){this._config.animation&&this._element.classList.add(to);var e=function(){t._element.classList.remove(io),t._element.classList.add(no),G.trigger(t._element,Ji.SHOWN),t._config.autohide&&(t._timeout=setTimeout(function(){t.hide()},t._config.delay))};if(this._element.classList.remove(eo),y(this._element),this._element.classList.add(io),this._config.animation){var n=h(this._element);G.one(this._element,l,e),g(this._element,n)}else e()}},n.hide=function(){var t=this;if(this._element.classList.contains(no)&&!G.trigger(this._element,Ji.HIDE).defaultPrevented){var e=function(){t._element.classList.add(eo),G.trigger(t._element,Ji.HIDDEN)};if(this._element.classList.remove(no),this._config.animation){var n=h(this._element);G.one(this._element,l,e),g(this._element,n)}else e()}},n.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(no)&&this._element.classList.remove(no),G.off(this._element,Ji.CLICK_DISMISS),w.removeData(this._element,Zi),this._element=null,this._config=null},n._getConfig=function(t){return t=o({},ro,{},vt.getDataAttributes(this._element),{},"object"==typeof t&&t?t:{}),m("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;G.on(this._element,Ji.CLICK_DISMISS,so,function(){return t.hide()})},t._jQueryInterface=function(e){return this.each(function(){var n=w.getData(this,Zi);if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e](this)}})},t._getInstance=function(t){return w.getData(t,Zi)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return oo}},{key:"Default",get:function(){return ro}}]),t}();if("undefined"!=typeof c){var lo=c.fn.toast;c.fn.toast=ao._jQueryInterface,c.fn.toast.Constructor=ao,c.fn.toast.noConflict=function(){return c.fn.toast=lo,ao._jQueryInterface}}return{Alert:et,Button:pt,Carousel:Wt,Collapse:te,Dropdown:In,Modal:Wn,Popover:yi,ScrollSpy:ki,Tab:qi,Toast:ao,Tooltip:ci}}); //# sourceMappingURL=bootstrap.bundle.min.js.map
\ No newline at end of file diff --git a/dist/js/bootstrap.bundle.min.js.map b/dist/js/bootstrap.bundle.min.js.map index 748bd5d011..3f554f24c6 100644 --- a/dist/js/bootstrap.bundle.min.js.map +++ b/dist/js/bootstrap.bundle.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/event-handler.js","../../js/src/dom/selector-engine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"names":["storeData","id","e","TRANSITION_END","jQuery","window","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","_window$getComputedSt","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","obj","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","toString","call","match","toLowerCase","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","noop","reflow","offsetHeight","mapData","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","CustomEvent","bubbles","cancelable","detail","initCustomEvent","preventDefault","defaultPrevented","origPreventDefault","Event","this","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","hasId","Boolean","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","findHandler","events","handler","delegationSelector","uidEventList","i","len","length","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","oneOff","_normalizeParams","handlers","previousFn","fn","domElements","target","EventHandler","off","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","substr","keyHandlers","trigger","args","jQueryEvent","isNative","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","SelectorEngine","documentElement","findFn","children","_this","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","DATA_KEY","EVENT_KEY","CLOSE","CLOSED","CLICK_DATA_API","ClassName","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","Selector","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","NAME","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","ACTIVE","ACTIVE_ITEM","ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","pointerType","clientX","touches","end","clearTimeout","itemImg","move","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","SHOW","SHOWN","HIDE","HIDDEN","Dimension","ACTIVES","DATA_TOGGLE","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","isBrowser","longerTimeoutBrowsers","timeoutDuration","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","css","ownerDocument","defaultView","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","upperSide","arguments","undefined","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","classCallCheck","createClass","defineProperties","props","descriptor","enumerable","writable","protoProps","staticProps","_extends","assign","source","hasOwnProperty","getClientRect","offsets","right","bottom","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","getFixedPositionOffsetParent","el","getBoundaries","popper","reference","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","isFixed","_getWindowSizes","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","map","area","_ref","sort","a","b","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","check","Array","runModifiers","modifiers","ends","prop","findIndex","cur","console","warn","enabled","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","toCheck","getWindow","setupEventListeners","options","updateBound","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","disableEventListeners","cancelAnimationFrame","scheduleUpdate","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","concat","reverse","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","positionFixed","removeOnDestroy","onCreate","onUpdate","shift","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","flip","flipped","originalPlacement","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","willChange","invertTop","invertLeft","x-placement","arrowStyles","applyStyle","onLoad","modifierOptions","Popper","requestAnimationFrame","update","isDestroyed","isCreated","enableEventListeners","Utils","global","PopperUtils","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","AttachmentMap","boundary","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","referenceElement","_getPopperConfig","destroy","stopPropagation","constructor","_getPlacement","parentDropdown","_getOffset","popperConfig","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","hideEvent","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","_this9","actualPadding","calculatedPadding","actualMargin","calculatedMargin","margin","scrollDiv","scrollbarWidth","_this10","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","*","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","_loop","elName","attributeList","whitelistedAttributes","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","fallbackPlacement","sanitize","AUTO","TOP","RIGHT","BOTTOM","LEFT","HoverState","INSERTED","FOCUSOUT","Trigger","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","findShadowRoot","attachShadow","getRootNode","root","ShadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_handlePopperPlacementChange","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","content","innerText","textContent","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","token","tClass","popperData","popperInstance","initConfigAnimation","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","spy","Tab","listElement","itemSelector","active","_transitionComplete","dropdownChild","dropdown","autohide","Toast"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\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 if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\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 const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\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 static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.15.0\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';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\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\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['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 return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\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\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (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\n\n\n\n\nvar defineProperty = function (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/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } 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 };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (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\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\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 if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\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 }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(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\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).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\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\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\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/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\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 var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _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\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\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/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // 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 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 var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\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 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 return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('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\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['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'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\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/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = 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\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\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\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 if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\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 return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(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 }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\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 if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\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\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(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/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function 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.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function 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/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\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 };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_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 });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\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 /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\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/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n SelectorEngine.findOne(Selector.DATA_TOGGLE, parent).focus()\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n this._hideModalHandler\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = EventHandler.trigger(this._element, Event.SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"]}
\ No newline at end of file +{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/event-handler.js","../../js/src/dom/selector-engine.js","../../js/src/alert/alert.js","../../js/src/button/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel/carousel.js","../../js/src/collapse/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown/dropdown.js","../../js/src/modal/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip/tooltip.js","../../js/src/popover/popover.js","../../js/src/scrollspy/scrollspy.js","../../js/src/tab/tab.js","../../js/src/toast/toast.js","../../js/index.umd.js"],"names":["storeData","id","e","TRANSITION_END","jQuery","window","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","_window$getComputedSt","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","obj","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","toString","call","match","toLowerCase","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","noop","reflow","offsetHeight","mapData","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","CustomEvent","bubbles","cancelable","detail","initCustomEvent","preventDefault","defaultPrevented","origPreventDefault","Event","this","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","hasId","Boolean","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","findHandler","events","handler","delegationSelector","uidEventList","i","len","length","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","oneOff","_normalizeParams","handlers","previousFn","fn","domElements","target","EventHandler","off","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","substr","keyHandlers","trigger","args","jQueryEvent","isNative","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","SelectorEngine","documentElement","findFn","children","_this","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","DATA_KEY","EVENT_KEY","CLOSE","CLOSED","CLICK_DATA_API","ClassName","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","Selector","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread2","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","NAME","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","ACTIVE","ACTIVE_ITEM","ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","pointerType","clientX","touches","end","clearTimeout","itemImg","move","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","SHOW","SHOWN","HIDE","HIDDEN","Dimension","ACTIVES","DATA_TOGGLE","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","selected","triggerArray","isOpen","triggerData","isBrowser","longerTimeoutBrowsers","timeoutDuration","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","css","ownerDocument","defaultView","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","upperSide","arguments","undefined","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","classCallCheck","createClass","defineProperties","props","descriptor","enumerable","writable","protoProps","staticProps","_extends","assign","source","hasOwnProperty","getClientRect","offsets","right","bottom","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","getFixedPositionOffsetParent","el","getBoundaries","popper","reference","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","isFixed","_getWindowSizes","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","map","area","_ref","sort","a","b","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","check","Array","runModifiers","modifiers","ends","prop","findIndex","cur","console","warn","enabled","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","toCheck","getWindow","setupEventListeners","options","updateBound","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","disableEventListeners","cancelAnimationFrame","scheduleUpdate","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","concat","reverse","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","positionFixed","removeOnDestroy","onCreate","onUpdate","shift","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","flip","flipped","originalPlacement","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","willChange","invertTop","invertLeft","x-placement","arrowStyles","applyStyle","onLoad","modifierOptions","Popper","requestAnimationFrame","update","isDestroyed","isCreated","enableEventListeners","Utils","global","PopperUtils","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","AttachmentMap","boundary","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","referenceElement","_getPopperConfig","destroy","stopPropagation","constructor","_getPlacement","parentDropdown","_getOffset","popperConfig","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","_this9","actualPadding","calculatedPadding","actualMargin","calculatedMargin","margin","scrollDiv","scrollbarWidth","_this10","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","*","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","_loop","elName","attributeList","whitelistedAttributes","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","fallbackPlacement","sanitize","AUTO","TOP","RIGHT","BOTTOM","LEFT","HoverState","INSERTED","FOCUSOUT","Trigger","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","findShadowRoot","attachShadow","getRootNode","root","ShadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","_handlePopperPlacementChange","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","CLASS_PREFIX","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","token","tClass","popperData","popperInstance","initConfigAnimation","Popover","_getContent","addAttachmentClass","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","spy","Tab","listElement","itemSelector","hideEvent","active","_transitionComplete","dropdownChild","dropdown","autohide","Toast"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n const siblings = []\n\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\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 if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\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 const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\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 static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n const selector = getSelectorFromElement(element)\n const selected = selector ? SelectorEngine.findOne(selector) : null\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.15.0\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';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\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\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['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 return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\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\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (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\n\n\n\n\nvar defineProperty = function (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/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } 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 };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (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\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\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 if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\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 }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(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\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).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\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\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\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/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\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 var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _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\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\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/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // 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 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 var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\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 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 return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('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\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['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'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\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/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = 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\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\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\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 if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\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 return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(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 }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\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 if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\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\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(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/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function 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.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function 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/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\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 };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_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 });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\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 /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\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/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n const parent = Dropdown._getParentFromElement(this._element)\n\n return SelectorEngine.findOne(Selector.MENU, parent)\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n SelectorEngine.findOne(Selector.DATA_TOGGLE, parent).focus()\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n const selector = getSelectorFromElement(this)\n const target = SelectorEngine.findOne(selector)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from '../util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from '../util/sanitizer'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide() {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n this._popper.destroy()\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n this._hideModalHandler\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport Data from '../dom/data'\nimport SelectorEngine from '../dom/selector-engine'\nimport Tooltip from '../tooltip/tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = EventHandler.trigger(this._element, Event.SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n reflow(this._element)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert/alert'\nimport Button from './src/button/button'\nimport Carousel from './src/carousel/carousel'\nimport Collapse from './src/collapse/collapse'\nimport Dropdown from './src/dropdown/dropdown'\nimport Modal from './src/modal/modal'\nimport Popover from './src/popover/popover'\nimport ScrollSpy from './src/scrollspy/scrollspy'\nimport Tab from './src/tab/tab'\nimport Toast from './src/toast/toast'\nimport Tooltip from './src/tooltip/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"]}
\ No newline at end of file diff --git a/dist/js/bootstrap.esm.js b/dist/js/bootstrap.esm.js index 22639b0de6..3125fafc06 100644 --- a/dist/js/bootstrap.esm.js +++ b/dist/js/bootstrap.esm.js @@ -36,20 +36,35 @@ function _defineProperty(obj, key, value) { return obj; } -function _objectSpread(target) { +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; - var ownKeys = Object.keys(source); - if (typeof Object.getOwnPropertySymbols === 'function') { - ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { - return Object.getOwnPropertyDescriptor(source, sym).enumerable; - })); + if (i % 2) { + ownKeys(source, true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(source).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); } - - ownKeys.forEach(function (key) { - _defineProperty(target, key, source[key]); - }); } return target; @@ -742,10 +757,6 @@ var SelectorEngine = { element = document.documentElement; } - if (typeof selector !== 'string') { - return null; - } - return find.call(element, selector); }, findOne: function findOne$1(selector, element) { @@ -753,29 +764,17 @@ var SelectorEngine = { element = document.documentElement; } - if (typeof selector !== 'string') { - return null; - } - return findOne.call(element, selector); }, children: function children(element, selector) { var _this = this; - if (typeof selector !== 'string') { - return null; - } - var children = makeArray(element.children); return children.filter(function (child) { return _this.matches(child, selector); }); }, parents: function parents(element, selector) { - if (typeof selector !== 'string') { - return null; - } - var parents = []; var ancestor = element.parentNode; @@ -790,17 +789,9 @@ var SelectorEngine = { return parents; }, closest: function closest$1(element, selector) { - if (typeof selector !== 'string') { - return null; - } - return closest.call(element, selector); }, prev: function prev(element, selector) { - if (typeof selector !== 'string') { - return null; - } - var siblings = []; var previous = element.previousSibling; @@ -915,8 +906,8 @@ function () { } var transitionDuration = getTransitionDurationFromElement(element); - EventHandler.one(element, TRANSITION_END, function (event) { - return _this._destroyElement(element, event); + EventHandler.one(element, TRANSITION_END, function () { + return _this._destroyElement(element); }); emulateTransitionEnd(element, transitionDuration); }; @@ -982,6 +973,8 @@ EventHandler.on(document, Event$1.CLICK_DATA_API, Selector.DISMISS, Alert._handl * add .alert to jQuery only if jQuery is present */ +/* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT = jQuery.fn[NAME]; jQuery.fn[NAME] = Alert._jQueryInterface; @@ -1136,7 +1129,6 @@ EventHandler.on(document, Event$2.CLICK_DATA_API, Selector$1.DATA_TOGGLE_CARROT, if (!data) { data = new Button(button); - Data.setData(button, DATA_KEY$1, data); } data.toggle(); @@ -1162,6 +1154,8 @@ EventHandler.on(document, Event$2.BLUR_DATA_API, Selector$1.DATA_TOGGLE_CARROT, * add .button to jQuery only if jQuery is present */ +/* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$1 = jQuery.fn[NAME$1]; jQuery.fn[NAME$1] = Button._jQueryInterface; @@ -1217,7 +1211,7 @@ var Manipulator = { return {}; } - var attributes = _objectSpread({}, element.dataset); + var attributes = _objectSpread2({}, element.dataset); Object.keys(attributes).forEach(function (key) { attributes[key] = normalizeData(attributes[key]); @@ -1460,7 +1454,7 @@ function () { ; _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default, config); + config = _objectSpread2({}, Default, {}, config); typeCheckConfig(NAME$2, config, DefaultType); return config; }; @@ -1503,7 +1497,7 @@ function () { }); } - if (this._config.touch) { + if (this._config.touch && this._touchSupported) { this._addTouchEventListeners(); } }; @@ -1511,10 +1505,6 @@ function () { _proto._addTouchEventListeners = function _addTouchEventListeners() { var _this3 = this; - if (!this._touchSupported) { - return; - } - var start = function start(event) { if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) { _this3.touchStartX = event.clientX; @@ -1763,10 +1753,10 @@ function () { Carousel._carouselInterface = function _carouselInterface(element, config) { var data = Data.getData(element, DATA_KEY$2); - var _config = _objectSpread({}, Default, Manipulator.getDataAttributes(element)); + var _config = _objectSpread2({}, Default, {}, Manipulator.getDataAttributes(element)); if (typeof config === 'object') { - _config = _objectSpread({}, _config, config); + _config = _objectSpread2({}, _config, {}, config); } var action = typeof config === 'string' ? config : _config.slide; @@ -1808,7 +1798,7 @@ function () { return; } - var config = _objectSpread({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this)); + var config = _objectSpread2({}, Manipulator.getDataAttributes(target), {}, Manipulator.getDataAttributes(this)); var slideIndex = this.getAttribute('data-slide-to'); @@ -1865,6 +1855,8 @@ EventHandler.on(window, Event$3.LOAD_DATA_API, function () { * add .carousel to jQuery only if jQuery is present */ +/* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$2 = jQuery.fn[NAME$2]; jQuery.fn[NAME$2] = Carousel._jQueryInterface; @@ -2141,7 +2133,7 @@ function () { ; _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default$1, config); + config = _objectSpread2({}, Default$1, {}, config); config.toggle = Boolean(config.toggle); // Coerce string values typeCheckConfig(NAME$3, config, DefaultType$1); @@ -2170,7 +2162,10 @@ function () { var selector = "[data-toggle=\"collapse\"][data-parent=\"" + parent + "\"]"; makeArray(SelectorEngine.find(selector, parent)).forEach(function (element) { - _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]); + var selector = getSelectorFromElement(element); + var selected = selector ? SelectorEngine.findOne(selector) : null; + + _this3._addAriaAndCollapsedClass(selected, [element]); }); return parent; }; @@ -2194,15 +2189,10 @@ function () { } // Static ; - Collapse._getTargetFromElement = function _getTargetFromElement(element) { - var selector = getSelectorFromElement(element); - return selector ? SelectorEngine.findOne(selector) : null; - }; - Collapse._collapseInterface = function _collapseInterface(element, config) { var data = Data.getData(element, DATA_KEY$3); - var _config = _objectSpread({}, Default$1, Manipulator.getDataAttributes(element), typeof config === 'object' && config ? config : {}); + var _config = _objectSpread2({}, Default$1, {}, Manipulator.getDataAttributes(element), {}, typeof config === 'object' && config ? config : {}); if (!data && _config.toggle && /show|hide/.test(config)) { _config.toggle = false; @@ -2287,6 +2277,8 @@ EventHandler.on(document, Event$4.CLICK_DATA_API, Selector$3.DATA_TOGGLE, functi * add .collapse to jQuery only if jQuery is present */ +/* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$3 = jQuery.fn[NAME$3]; jQuery.fn[NAME$3] = Collapse._jQueryInterface; @@ -2549,21 +2541,15 @@ function () { }; _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, this.constructor.Default, Manipulator.getDataAttributes(this._element), config); + config = _objectSpread2({}, this.constructor.Default, {}, Manipulator.getDataAttributes(this._element), {}, config); typeCheckConfig(NAME$4, config, this.constructor.DefaultType); return config; }; _proto._getMenuElement = function _getMenuElement() { - if (!this._menu) { - var parent = Dropdown._getParentFromElement(this._element); - - if (parent) { - this._menu = SelectorEngine.findOne(Selector$4.MENU, parent); - } - } + var parent = Dropdown._getParentFromElement(this._element); - return this._menu; + return SelectorEngine.findOne(Selector$4.MENU, parent); }; _proto._getPlacement = function _getPlacement() { @@ -2598,7 +2584,7 @@ function () { if (typeof this._config.offset === 'function') { offset.fn = function (data) { - data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {}); + data.offsets = _objectSpread2({}, data.offsets, {}, _this2._config.offset(data.offsets, _this2._element) || {}); return data; }; } else { @@ -2830,6 +2816,8 @@ EventHandler.on(document, Event$5.CLICK_DATA_API, Selector$4.FORM_CHILD, functio * add .dropdown to jQuery only if jQuery is present */ +/* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$4 = jQuery.fn[NAME$4]; jQuery.fn[NAME$4] = Dropdown._jQueryInterface; @@ -2986,7 +2974,7 @@ function () { var hideEvent = EventHandler.trigger(this._element, Event$6.HIDE); - if (!this._isShown || hideEvent.defaultPrevented) { + if (hideEvent.defaultPrevented) { return; } @@ -3049,7 +3037,7 @@ function () { ; _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default$3, config); + config = _objectSpread2({}, Default$3, {}, config); typeCheckConfig(NAME$5, config, DefaultType$3); return config; }; @@ -3129,7 +3117,7 @@ function () { _this5.hide(); } }); - } else if (!this._isShown) { + } else { EventHandler.off(this._element, Event$6.KEYDOWN_DISMISS); } }; @@ -3138,8 +3126,8 @@ function () { var _this6 = this; if (this._isShown) { - EventHandler.on(window, Event$6.RESIZE, function (event) { - return _this6.handleUpdate(event); + EventHandler.on(window, Event$6.RESIZE, function () { + return _this6._adjustDialog(); }); } else { EventHandler.off(window, Event$6.RESIZE); @@ -3169,11 +3157,9 @@ function () { }; _proto._removeBackdrop = function _removeBackdrop() { - if (this._backdrop) { - this._backdrop.parentNode.removeChild(this._backdrop); + this._backdrop.parentNode.removeChild(this._backdrop); - this._backdrop = null; - } + this._backdrop = null; }; _proto._showBackdrop = function _showBackdrop(callback) { @@ -3213,10 +3199,6 @@ function () { this._backdrop.classList.add(ClassName$5.SHOW); - if (!callback) { - return; - } - if (!animate) { callback(); return; @@ -3231,9 +3213,7 @@ function () { var callbackRemove = function callbackRemove() { _this8._removeBackdrop(); - if (callback) { - callback(); - } + callback(); }; if (this._element.classList.contains(ClassName$5.FADE)) { @@ -3244,7 +3224,7 @@ function () { } else { callbackRemove(); } - } else if (callback) { + } else { callback(); } } // ---------------------------------------------------------------------- @@ -3350,7 +3330,7 @@ function () { return this.each(function () { var data = Data.getData(this, DATA_KEY$5); - var _config = _objectSpread({}, Default$3, Manipulator.getDataAttributes(this), typeof config === 'object' && config ? config : {}); + var _config = _objectSpread2({}, Default$3, {}, Manipulator.getDataAttributes(this), {}, typeof config === 'object' && config ? config : {}); if (!data) { data = new Modal(this, _config); @@ -3396,14 +3376,8 @@ function () { EventHandler.on(document, Event$6.CLICK_DATA_API, Selector$5.DATA_TOGGLE, function (event) { var _this10 = this; - var target; var selector = getSelectorFromElement(this); - - if (selector) { - target = SelectorEngine.findOne(selector); - } - - var config = Data.getData(target, DATA_KEY$5) ? 'toggle' : _objectSpread({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this)); + var target = SelectorEngine.findOne(selector); if (this.tagName === 'A' || this.tagName === 'AREA') { event.preventDefault(); @@ -3424,6 +3398,8 @@ EventHandler.on(document, Event$6.CLICK_DATA_API, Selector$5.DATA_TOGGLE, functi var data = Data.getData(target, DATA_KEY$5); if (!data) { + var config = _objectSpread2({}, Manipulator.getDataAttributes(target), {}, Manipulator.getDataAttributes(this)); + data = new Modal(target, config); } @@ -3433,8 +3409,11 @@ EventHandler.on(document, Event$6.CLICK_DATA_API, Selector$5.DATA_TOGGLE, functi * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ + * add .modal to jQuery only if jQuery is present */ +/* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$5 = jQuery.fn[NAME$5]; jQuery.fn[NAME$5] = Modal._jQueryInterface; @@ -3559,7 +3538,7 @@ function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) { }; for (var i = 0, len = elements.length; i < len; i++) { - var _ret = _loop(i, len); + var _ret = _loop(i); if (_ret === "continue") continue; } @@ -3788,7 +3767,7 @@ function () { var attachment = this._getAttachment(placement); - this.addAttachmentClass(attachment); + this._addAttachmentClass(attachment); var container = this._getContainer(); @@ -3857,7 +3836,7 @@ function () { } }; - _proto.hide = function hide(callback) { + _proto.hide = function hide() { var _this2 = this; var tip = this.getTipElement(); @@ -3873,13 +3852,7 @@ function () { EventHandler.trigger(_this2.element, _this2.constructor.Event.HIDDEN); - if (_this2._popper !== null) { - _this2._popper.destroy(); - } - - if (callback) { - callback(); - } + _this2._popper.destroy(); }; var hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE); @@ -3923,10 +3896,6 @@ function () { return Boolean(this.getTitle()); }; - _proto.addAttachmentClass = function addAttachmentClass(attachment) { - this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment); - }; - _proto.getTipElement = function getTipElement() { if (this.tip) { return this.tip; @@ -3950,7 +3919,7 @@ function () { return; } - if (typeof content === 'object' && (content.nodeType || content.jquery)) { + if (typeof content === 'object' && isElement(content)) { if (content.jquery) { content = content[0]; } // content is a DOM node or a jQuery @@ -3990,6 +3959,10 @@ function () { } // Private ; + _proto._addAttachmentClass = function _addAttachmentClass(attachment) { + this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment); + }; + _proto._getOffset = function _getOffset() { var _this3 = this; @@ -3997,7 +3970,7 @@ function () { if (typeof this.config.offset === 'function') { offset.fn = function (data) { - data.offsets = _objectSpread({}, data.offsets, _this3.config.offset(data.offsets, _this3.element) || {}); + data.offsets = _objectSpread2({}, data.offsets, {}, _this3.config.offset(data.offsets, _this3.element) || {}); return data; }; } else { @@ -4053,7 +4026,7 @@ function () { EventHandler.on(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', this._hideModalHandler); if (this.config.selector) { - this.config = _objectSpread({}, this.config, { + this.config = _objectSpread2({}, this.config, { trigger: 'manual', selector: '' }); @@ -4158,7 +4131,7 @@ function () { config.container = config.container[0]; } - config = _objectSpread({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {}); + config = _objectSpread2({}, this.constructor.Default, {}, dataAttributes, {}, typeof config === 'object' && config ? config : {}); if (typeof config.delay === 'number') { config.delay = { @@ -4217,7 +4190,7 @@ function () { this._cleanTipClass(); - this.addAttachmentClass(this._getAttachment(popperData.placement)); + this._addAttachmentClass(this._getAttachment(popperData.placement)); }; _proto._fixTransition = function _fixTransition() { @@ -4310,6 +4283,8 @@ function () { * add .tooltip to jQuery only if jQuery is present */ +/* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$6 = jQuery.fn[NAME$6]; @@ -4335,14 +4310,14 @@ var EVENT_KEY$7 = "." + DATA_KEY$7; var CLASS_PREFIX$1 = 'bs-popover'; var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g'); -var Default$5 = _objectSpread({}, Tooltip.Default, { +var Default$5 = _objectSpread2({}, Tooltip.Default, { placement: 'right', trigger: 'click', content: '', template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>' }); -var DefaultType$5 = _objectSpread({}, Tooltip.DefaultType, { +var DefaultType$5 = _objectSpread2({}, Tooltip.DefaultType, { content: '(string|element|function)' }); @@ -4503,6 +4478,8 @@ function (_Tooltip) { * ------------------------------------------------------------------------ */ +/* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$7 = jQuery.fn[NAME$7]; @@ -4646,7 +4623,7 @@ function () { ; _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default$6, typeof config === 'object' && config ? config : {}); + config = _objectSpread2({}, Default$6, {}, typeof config === 'object' && config ? config : {}); if (typeof config.target !== 'string') { var id = config.target.id; @@ -4817,6 +4794,8 @@ EventHandler.on(window, Event$9.LOAD_DATA_API, function () { * ------------------------------------------------------------------------ */ +/* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$8 = jQuery.fn[NAME$8]; jQuery.fn[NAME$8] = ScrollSpy._jQueryInterface; @@ -5054,6 +5033,8 @@ EventHandler.on(document, Event$a.CLICK_DATA_API, Selector$9.DATA_TOGGLE, functi * add .tab to jQuery only if jQuery is present */ +/* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$9 = jQuery.fn[NAME$9]; jQuery.fn[NAME$9] = Tab._jQueryInterface; @@ -5154,6 +5135,8 @@ function () { this._element.classList.remove(ClassName$a.HIDE); + reflow(this._element); + this._element.classList.add(ClassName$a.SHOWING); if (this._config.animation) { @@ -5211,7 +5194,7 @@ function () { ; _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default$7, Manipulator.getDataAttributes(this._element), typeof config === 'object' && config ? config : {}); + config = _objectSpread2({}, Default$7, {}, Manipulator.getDataAttributes(this._element), {}, typeof config === 'object' && config ? config : {}); typeCheckConfig(NAME$a, config, this.constructor.DefaultType); return config; }; @@ -5275,6 +5258,8 @@ function () { * add .toast to jQuery only if jQuery is present */ +/* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$a = jQuery.fn[NAME$a]; @@ -5287,12 +5272,5 @@ if (typeof jQuery !== 'undefined') { }; } -/** - * -------------------------------------------------------------------------- - * Bootstrap (v4.3.1): index.esm.js - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - * -------------------------------------------------------------------------- - */ - export { Alert, Button, Carousel, Collapse, Dropdown, Modal, Popover, ScrollSpy, Tab, Toast, Tooltip }; //# sourceMappingURL=bootstrap.esm.js.map diff --git a/dist/js/bootstrap.esm.js.map b/dist/js/bootstrap.esm.js.map index ca4af368a0..befebca2aa 100644 --- a/dist/js/bootstrap.esm.js.map +++ b/dist/js/bootstrap.esm.js.map @@ -1 +1 @@ -{"version":3,"file":"bootstrap.esm.js","sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/event-handler.js","../../js/src/dom/selector-engine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.esm.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\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 if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\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 const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\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 static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n SelectorEngine.findOne(Selector.DATA_TOGGLE, parent).focus()\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n this._hideModalHandler\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = EventHandler.trigger(this._element, Event.SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.esm.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","cEvent","CustomEvent","bubbles","cancelable","detail","initCustomEvent","workingDefaultPrevented","e","preventDefault","defaultPrevented","origPreventDefault","Event","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","uidEventList","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","NODE_TEXT","SelectorEngine","findFn","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","SHOWING","autohide","Toast"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;AAOA,IAAMA,OAAO,GAAG,OAAhB;AACA,IAAMC,uBAAuB,GAAG,IAAhC;AACA,IAAMC,cAAc,GAAG,eAAvB;cACmBC;IAAXC,iBAAAA;;AAGR,IAAMC,MAAM,GAAG,SAATA,MAAS,CAAAC,GAAG;SAAK,GAAGC,QAAH,CAAYC,IAAZ,CAAiBF,GAAjB,EAAsBG,KAAtB,CAA4B,aAA5B,EAA2C,CAA3C,EAA8CC,WAA9C,EAAL;CAAlB;;;;;;;;AAQA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAAAC,MAAM,EAAI;KACpB;;IAEDA,MAAM,IAAI,CAAC,EAAEC,IAAI,CAACC,MAAL,KAAgBd,OAAlB,CAAX,CAFC;GAAH,QAGSe,QAAQ,CAACC,cAAT,CAAwBJ,MAAxB,CAHT;;SAKOA,MAAP;CANF;;AASA,IAAMK,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAAC,OAAO,EAAI;MACpCC,QAAQ,GAAGD,OAAO,CAACE,YAAR,CAAqB,aAArB,CAAf;;MAEI,CAACD,QAAD,IAAaA,QAAQ,KAAK,GAA9B,EAAmC;QAC3BE,QAAQ,GAAGH,OAAO,CAACE,YAAR,CAAqB,MAArB,CAAjB;IAEAD,QAAQ,GAAGE,QAAQ,IAAIA,QAAQ,KAAK,GAAzB,GAA+BA,QAAQ,CAACC,IAAT,EAA/B,GAAiD,EAA5D;;;MAGE;WACKP,QAAQ,CAACQ,aAAT,CAAuBJ,QAAvB,IAAmCA,QAAnC,GAA8C,IAArD;GADF,CAEE,OAAOK,KAAP,EAAc;WACP,IAAP;;CAZJ;;AAgBA,IAAMC,gCAAgC,GAAG,SAAnCA,gCAAmC,CAAAP,OAAO,EAAI;MAC9C,CAACA,OAAL,EAAc;WACL,CAAP;GAFgD;;;8BAS9Cf,MAAM,CAACuB,gBAAP,CAAwBR,OAAxB,CAT8C;MAOhDS,kBAPgD,yBAOhDA,kBAPgD;MAQhDC,eARgD,yBAQhDA,eARgD;;MAW5CC,uBAAuB,GAAGC,UAAU,CAACH,kBAAD,CAA1C;MACMI,oBAAoB,GAAGD,UAAU,CAACF,eAAD,CAAvC,CAZkD;;MAe9C,CAACC,uBAAD,IAA4B,CAACE,oBAAjC,EAAuD;WAC9C,CAAP;GAhBgD;;;EAoBlDJ,kBAAkB,GAAGA,kBAAkB,CAACK,KAAnB,CAAyB,GAAzB,EAA8B,CAA9B,CAArB;EACAJ,eAAe,GAAGA,eAAe,CAACI,KAAhB,CAAsB,GAAtB,EAA2B,CAA3B,CAAlB;SAEO,CAACF,UAAU,CAACH,kBAAD,CAAV,GAAiCG,UAAU,CAACF,eAAD,CAA5C,IAAiE3B,uBAAxE;CAvBF;;AA0BA,IAAMgC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAAf,OAAO,EAAI;MAChCgB,GAAG,GAAGnB,QAAQ,CAACoB,WAAT,CAAqB,YAArB,CAAZ;EAEAD,GAAG,CAACE,SAAJ,CAAclC,cAAd,EAA8B,IAA9B,EAAoC,IAApC;EACAgB,OAAO,CAACmB,aAAR,CAAsBH,GAAtB;CAJF;;AAOA,IAAMI,SAAS,GAAG,SAAZA,SAAY,CAAAhC,GAAG;SAAI,CAACA,GAAG,CAAC,CAAD,CAAH,IAAUA,GAAX,EAAgBiC,QAApB;CAArB;;AAEA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACtB,OAAD,EAAUuB,QAAV,EAAuB;MAC9CC,MAAM,GAAG,KAAb;MACMC,eAAe,GAAG,CAAxB;MACMC,gBAAgB,GAAGH,QAAQ,GAAGE,eAApC;;WACSE,QAAT,GAAoB;IAClBH,MAAM,GAAG,IAAT;IACAxB,OAAO,CAAC4B,mBAAR,CAA4B5C,cAA5B,EAA4C2C,QAA5C;;;EAGF3B,OAAO,CAAC6B,gBAAR,CAAyB7C,cAAzB,EAAyC2C,QAAzC;EACAG,UAAU,CAAC,YAAM;QACX,CAACN,MAAL,EAAa;MACXT,oBAAoB,CAACf,OAAD,CAApB;;GAFM,EAIP0B,gBAJO,CAAV;CAVF;;AAiBA,IAAMK,eAAe,GAAG,SAAlBA,eAAkB,CAACC,aAAD,EAAgBC,MAAhB,EAAwBC,WAAxB,EAAwC;EAC9DC,MAAM,CAACC,IAAP,CAAYF,WAAZ,EACGG,OADH,CACW,UAAAC,QAAQ,EAAI;QACbC,aAAa,GAAGL,WAAW,CAACI,QAAD,CAAjC;QACME,KAAK,GAAGP,MAAM,CAACK,QAAD,CAApB;QACMG,SAAS,GAAGD,KAAK,IAAIpB,SAAS,CAACoB,KAAD,CAAlB,GAChB,SADgB,GAEhBrD,MAAM,CAACqD,KAAD,CAFR;;QAII,CAAC,IAAIE,MAAJ,CAAWH,aAAX,EAA0BI,IAA1B,CAA+BF,SAA/B,CAAL,EAAgD;YACxC,IAAIG,KAAJ,CACDZ,aAAa,CAACa,WAAd,EAAH,yBACWP,QADX,2BACuCG,SADvC,sCAEsBF,aAFtB,SADI,CAAN;;GATN;CADF;;AAkBA,IAAMO,SAAS,GAAG,SAAZA,SAAY,CAAAC,QAAQ,EAAI;MACxB,CAACA,QAAL,EAAe;WACN,EAAP;;;SAGK,GAAGC,KAAH,CAAS1D,IAAT,CAAcyD,QAAd,CAAP;CALF;;AAQA,IAAME,SAAS,GAAG,SAAZA,SAAY,CAAAjD,OAAO,EAAI;MACvB,CAACA,OAAL,EAAc;WACL,KAAP;;;MAGEA,OAAO,CAACkD,KAAR,IAAiBlD,OAAO,CAACmD,UAAzB,IAAuCnD,OAAO,CAACmD,UAAR,CAAmBD,KAA9D,EAAqE;WAC5DlD,OAAO,CAACkD,KAAR,CAAcE,OAAd,KAA0B,MAA1B,IACLpD,OAAO,CAACmD,UAAR,CAAmBD,KAAnB,CAAyBE,OAAzB,KAAqC,MADhC,IAELpD,OAAO,CAACkD,KAAR,CAAcG,UAAd,KAA6B,QAF/B;;;SAKK,KAAP;CAXF;;AAcA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAAAtD,OAAO,EAAI;MAC5B,CAACH,QAAQ,CAAC0D,eAAT,CAAyBC,YAA9B,EAA4C;WACnC,IAAP;GAF8B;;;MAM5B,OAAOxD,OAAO,CAACyD,WAAf,KAA+B,UAAnC,EAA+C;QACvCC,IAAI,GAAG1D,OAAO,CAACyD,WAAR,EAAb;WACOC,IAAI,YAAYC,UAAhB,GAA6BD,IAA7B,GAAoC,IAA3C;;;MAGE1D,OAAO,YAAY2D,UAAvB,EAAmC;WAC1B3D,OAAP;GAZ8B;;;MAgB5B,CAACA,OAAO,CAACmD,UAAb,EAAyB;WAChB,IAAP;;;SAGKG,cAAc,CAACtD,OAAO,CAACmD,UAAT,CAArB;CApBF;;;AAwBA,IAAMS,IAAI,GAAG,SAAPA,IAAO;SAAM,YAAY,EAAlB;CAAb;;AAEA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAAA7D,OAAO;SAAIA,OAAO,CAAC8D,YAAZ;CAAtB;;ACpKA;;;;;;;;;;;;AAaA,IAAMC,OAAO,GAAI,YAAM;MACfC,SAAS,GAAG,EAAlB;MACIC,EAAE,GAAG,CAAT;SACO;IACLC,GADK,eACDlE,OADC,EACQmE,GADR,EACaC,IADb,EACmB;UAClB,OAAOpE,OAAO,CAACmE,GAAf,KAAuB,WAA3B,EAAwC;QACtCnE,OAAO,CAACmE,GAAR,GAAc;UACZA,GAAG,EAAHA,GADY;UAEZF,EAAE,EAAFA;SAFF;QAIAA,EAAE;;;MAGJD,SAAS,CAAChE,OAAO,CAACmE,GAAR,CAAYF,EAAb,CAAT,GAA4BG,IAA5B;KAVG;IAYLC,GAZK,eAYDrE,OAZC,EAYQmE,GAZR,EAYa;UACZ,CAACnE,OAAD,IAAY,OAAOA,OAAO,CAACmE,GAAf,KAAuB,WAAvC,EAAoD;eAC3C,IAAP;;;UAGIG,aAAa,GAAGtE,OAAO,CAACmE,GAA9B;;UACIG,aAAa,CAACH,GAAd,KAAsBA,GAA1B,EAA+B;eACtBH,SAAS,CAACM,aAAa,CAACL,EAAf,CAAhB;;;aAGK,IAAP;KAtBG;IAwBLM,MAxBK,mBAwBEvE,OAxBF,EAwBWmE,GAxBX,EAwBgB;UACf,OAAOnE,OAAO,CAACmE,GAAf,KAAuB,WAA3B,EAAwC;;;;UAIlCG,aAAa,GAAGtE,OAAO,CAACmE,GAA9B;;UACIG,aAAa,CAACH,GAAd,KAAsBA,GAA1B,EAA+B;eACtBH,SAAS,CAACM,aAAa,CAACL,EAAf,CAAhB;eACOjE,OAAO,CAACmE,GAAf;;;GAhCN;CAHc,EAAhB;;AAyCA,IAAMK,IAAI,GAAG;EACXC,OADW,mBACHC,QADG,EACOP,GADP,EACYC,IADZ,EACkB;IAC3BL,OAAO,CAACG,GAAR,CAAYQ,QAAZ,EAAsBP,GAAtB,EAA2BC,IAA3B;GAFS;EAIXO,OAJW,mBAIHD,QAJG,EAIOP,GAJP,EAIY;WACdJ,OAAO,CAACM,GAAR,CAAYK,QAAZ,EAAsBP,GAAtB,CAAP;GALS;EAOXS,UAPW,sBAOAF,QAPA,EAOUP,GAPV,EAOe;IACxBJ,OAAO,CAACQ,MAAR,CAAeG,QAAf,EAAyBP,GAAzB;;CARJ;;ACtDA;yBAW2BU,OAAO,CAACC;IAA7BC,6BAAAA;IAASC,6BAAAA;AACf,IAAIC,IAAI,GAAGJ,OAAO,CAACC,SAAR,CAAkBI,gBAA7B;AACA,IAAIC,OAAO,GAAGN,OAAO,CAACC,SAAR,CAAkBzE,aAAhC;;AACA,IAAI+E,iBAAiB,GAAG,2BAACC,SAAD,EAAYC,MAAZ,EAAuB;MACvCC,MAAM,GAAG,IAAIC,WAAJ,CAAgBH,SAAhB,EAA2BC,MAA3B,CAAf;SAEOC,MAAP;CAHF;;AAMA,IAAI,OAAOtG,MAAM,CAACuG,WAAd,KAA8B,UAAlC,EAA8C;EAC5CJ,iBAAiB,GAAG,2BAACC,SAAD,EAAYC,MAAZ,EAAuB;IACzCA,MAAM,GAAGA,MAAM,IAAI;MAAEG,OAAO,EAAE,KAAX;MAAkBC,UAAU,EAAE,KAA9B;MAAqCC,MAAM,EAAE;KAAhE;QAEM3E,GAAG,GAAGnB,QAAQ,CAACoB,WAAT,CAAqB,aAArB,CAAZ;IAEAD,GAAG,CAAC4E,eAAJ,CAAoBP,SAApB,EAA+BC,MAAM,CAACG,OAAtC,EAA+CH,MAAM,CAACI,UAAtD,EAAkEJ,MAAM,CAACK,MAAzE;WACO3E,GAAP;GANF;;;AAUF,IAAM6E,uBAAuB,GAAI,YAAM;MAC/BC,CAAC,GAAGjG,QAAQ,CAACoB,WAAT,CAAqB,aAArB,CAAV;EAEA6E,CAAC,CAAC5E,SAAF,CAAY,WAAZ,EAAyB,IAAzB,EAA+B,IAA/B;EACA4E,CAAC,CAACC,cAAF;SACOD,CAAC,CAACE,gBAAT;CAL8B,EAAhC;;AAQA,IAAI,CAACH,uBAAL,EAA8B;MACtBI,kBAAkB,GAAGC,KAAK,CAACpB,SAAN,CAAgBiB,cAA3C;;EAEAG,KAAK,CAACpB,SAAN,CAAgBiB,cAAhB,GAAiC,YAAY;QACvC,CAAC,KAAKL,UAAV,EAAsB;;;;IAItBO,kBAAkB,CAAC3G,IAAnB,CAAwB,IAAxB;IACA6C,MAAM,CAACgE,cAAP,CAAsB,IAAtB,EAA4B,kBAA5B,EAAgD;MAC9C9B,GAD8C,iBACxC;eACG,IAAP;OAF4C;MAI9C+B,YAAY,EAAE;KAJhB;GANF;;;;AAgBF,IAAMC,mCAAmC,GAAI,YAAM;MAC3CP,CAAC,GAAGV,iBAAiB,CAAC,WAAD,EAAc;IACvCM,UAAU,EAAE;GADa,CAA3B;MAIM1F,OAAO,GAAGH,QAAQ,CAACyG,aAAT,CAAuB,KAAvB,CAAhB;EACAtG,OAAO,CAAC6B,gBAAR,CAAyB,WAAzB,EAAsC;WAAM,IAAN;GAAtC;EAEAiE,CAAC,CAACC,cAAF;EACA/F,OAAO,CAACmB,aAAR,CAAsB2E,CAAtB;SACOA,CAAC,CAACE,gBAAT;CAV0C,EAA5C;;AAaA,IAAI,CAACjB,OAAL,EAAc;EACZA,OAAO,GAAGF,OAAO,CAACC,SAAR,CAAkByB,iBAAlB,IAAuC1B,OAAO,CAACC,SAAR,CAAkB0B,qBAAnE;;;AAGF,IAAI,CAACxB,OAAL,EAAc;EACZA,OAAO,GAAG,iBAAU/E,QAAV,EAAoB;QACxBD,OAAO,GAAG,IAAd;;OAEG;UACG+E,OAAO,CAACzF,IAAR,CAAaU,OAAb,EAAsBC,QAAtB,CAAJ,EAAqC;eAC5BD,OAAP;;;MAGFA,OAAO,GAAGA,OAAO,CAACyG,aAAR,IAAyBzG,OAAO,CAACmD,UAA3C;KALF,QAMSnD,OAAO,KAAK,IAAZ,IAAoBA,OAAO,CAACqB,QAAR,KAAqB,CANlD;;WAQO,IAAP;GAXF;;;AAeF,IAAMqF,kBAAkB,GAAG,UAA3B;;AACA,IAAMC,iBAAiB,GAAI,YAAM;MACzB3G,OAAO,GAAGH,QAAQ,CAACyG,aAAT,CAAuB,KAAvB,CAAhB;;MAEI;IACFtG,OAAO,CAACkF,gBAAR,CAAyB,UAAzB;GADF,CAEE,OAAO5E,KAAP,EAAc;WACP,KAAP;;;SAGK,IAAP;CATwB,EAA1B;;AAYA,IAAI,CAACqG,iBAAL,EAAwB;EACtB1B,IAAI,GAAG,cAAUhF,QAAV,EAAoB;QACrB,CAACyG,kBAAkB,CAAC/D,IAAnB,CAAwB1C,QAAxB,CAAL,EAAwC;aAC/B,KAAKiF,gBAAL,CAAsBjF,QAAtB,CAAP;;;QAGI2G,KAAK,GAAGC,OAAO,CAAC,KAAK5C,EAAN,CAArB;;QAEI,CAAC2C,KAAL,EAAY;WACL3C,EAAL,GAAUxE,MAAM,CAAC,OAAD,CAAhB;;;QAGEsD,QAAQ,GAAG,IAAf;;QACI;MACF9C,QAAQ,GAAGA,QAAQ,CAAC6G,OAAT,CAAiBJ,kBAAjB,QAAyC,KAAKzC,EAA9C,CAAX;MACAlB,QAAQ,GAAG,KAAKmC,gBAAL,CAAsBjF,QAAtB,CAAX;KAFF,SAGU;UACJ,CAAC2G,KAAL,EAAY;aACLG,eAAL,CAAqB,IAArB;;;;WAIGhE,QAAP;GArBF;;EAwBAoC,OAAO,GAAG,iBAAUlF,QAAV,EAAoB;QACxB,CAACyG,kBAAkB,CAAC/D,IAAnB,CAAwB1C,QAAxB,CAAL,EAAwC;aAC/B,KAAKI,aAAL,CAAmBJ,QAAnB,CAAP;;;QAGI8E,OAAO,GAAGE,IAAI,CAAC3F,IAAL,CAAU,IAAV,EAAgBW,QAAhB,CAAhB;;QAEI,OAAO8E,OAAO,CAAC,CAAD,CAAd,KAAsB,WAA1B,EAAuC;aAC9BA,OAAO,CAAC,CAAD,CAAd;;;WAGK,IAAP;GAXF;;;ACjIF;;;;;;AAOA,AAGA;;;;;;AAMA,IAAMiC,cAAc,GAAG,oBAAvB;AACA,IAAMC,cAAc,GAAG,MAAvB;AACA,IAAMC,aAAa,GAAG,MAAtB;AACA,IAAMC,aAAa,GAAG,QAAtB;AACA,IAAMC,aAAa,GAAG,EAAtB;;AACA,IAAIC,QAAQ,GAAG,CAAf;AACA,IAAMC,YAAY,GAAG;EACnBC,UAAU,EAAE,WADO;EAEnBC,UAAU,EAAE;CAFd;AAIA,IAAMC,YAAY,GAAG,CACnB,OADmB,EAEnB,UAFmB,EAGnB,SAHmB,EAInB,WAJmB,EAKnB,aALmB,EAMnB,YANmB,EAOnB,gBAPmB,EAQnB,WARmB,EASnB,UATmB,EAUnB,WAVmB,EAWnB,aAXmB,EAYnB,WAZmB,EAanB,SAbmB,EAcnB,UAdmB,EAenB,OAfmB,EAgBnB,mBAhBmB,EAiBnB,YAjBmB,EAkBnB,WAlBmB,EAmBnB,UAnBmB,EAoBnB,aApBmB,EAqBnB,aArBmB,EAsBnB,aAtBmB,EAuBnB,WAvBmB,EAwBnB,cAxBmB,EAyBnB,eAzBmB,EA0BnB,cA1BmB,EA2BnB,eA3BmB,EA4BnB,YA5BmB,EA6BnB,OA7BmB,EA8BnB,MA9BmB,EA+BnB,QA/BmB,EAgCnB,OAhCmB,EAiCnB,QAjCmB,EAkCnB,QAlCmB,EAmCnB,SAnCmB,EAoCnB,UApCmB,EAqCnB,MArCmB,EAsCnB,QAtCmB,EAuCnB,cAvCmB,EAwCnB,QAxCmB,EAyCnB,MAzCmB,EA0CnB,kBA1CmB,EA2CnB,kBA3CmB,EA4CnB,OA5CmB,EA6CnB,OA7CmB,EA8CnB,QA9CmB,CAArB;;;;;;;AAuDA,SAASC,WAAT,CAAqB1H,OAArB,EAA8B2H,GAA9B,EAAmC;SAC1BA,GAAG,IAAOA,GAAP,UAAeN,QAAQ,EAA1B,IAAkCrH,OAAO,CAACqH,QAA1C,IAAsDA,QAAQ,EAArE;;;AAGF,SAASO,QAAT,CAAkB5H,OAAlB,EAA2B;MACnB2H,GAAG,GAAGD,WAAW,CAAC1H,OAAD,CAAvB;EAEAA,OAAO,CAACqH,QAAR,GAAmBM,GAAnB;EACAP,aAAa,CAACO,GAAD,CAAb,GAAqBP,aAAa,CAACO,GAAD,CAAb,IAAsB,EAA3C;SAEOP,aAAa,CAACO,GAAD,CAApB;;;AAGF,SAASE,QAAT,CAAkBC,KAAlB,EAAyB9H,OAAzB,EAAkC;;MAE5B8H,KAAK,CAACC,KAAN,KAAgB,IAAhB,IAAwBb,aAAa,CAACvE,IAAd,CAAmBmF,KAAK,CAACE,IAAzB,CAA5B,EAA4D;IAC1DF,KAAK,CAACC,KAAN,GAAcD,KAAK,CAACG,QAAN,KAAmB,IAAnB,GAA0BH,KAAK,CAACI,OAAhC,GAA0CJ,KAAK,CAACG,QAA9D;;;EAGFH,KAAK,CAACK,cAAN,GAAuBnI,OAAvB;;;AAGF,SAASoI,gBAAT,CAA0BpI,OAA1B,EAAmCqI,EAAnC,EAAuC;SAC9B,SAASC,OAAT,CAAiBR,KAAjB,EAAwB;IAC7BD,QAAQ,CAACC,KAAD,EAAQ9H,OAAR,CAAR;;QACIsI,OAAO,CAACC,MAAZ,EAAoB;MAClBC,YAAY,CAACC,GAAb,CAAiBzI,OAAjB,EAA0B8H,KAAK,CAACE,IAAhC,EAAsCK,EAAtC;;;WAGKA,EAAE,CAACK,KAAH,CAAS1I,OAAT,EAAkB,CAAC8H,KAAD,CAAlB,CAAP;GANF;;;AAUF,SAASa,0BAAT,CAAoC3I,OAApC,EAA6CC,QAA7C,EAAuDoI,EAAvD,EAA2D;SAClD,SAASC,OAAT,CAAiBR,KAAjB,EAAwB;QACvBc,WAAW,GAAG5I,OAAO,CAACkF,gBAAR,CAAyBjF,QAAzB,CAApB;;aAEW4I,MAAX,GAAsBf,KAAtB,CAAWe,MAAX,EAA6BA,MAAM,IAAIA,MAAM,KAAK,IAAlD,EAAwDA,MAAM,GAAGA,MAAM,CAAC1F,UAAxE,EAAoF;WAC7E,IAAI2F,CAAC,GAAGF,WAAW,CAACG,MAAzB,EAAiCD,CAAC,EAAlC,GAAuC;YACjCF,WAAW,CAACE,CAAD,CAAX,KAAmBD,MAAvB,EAA+B;UAC7BhB,QAAQ,CAACC,KAAD,EAAQe,MAAR,CAAR;;cAEIP,OAAO,CAACC,MAAZ,EAAoB;YAClBC,YAAY,CAACC,GAAb,CAAiBzI,OAAjB,EAA0B8H,KAAK,CAACE,IAAhC,EAAsCK,EAAtC;;;iBAGKA,EAAE,CAACK,KAAH,CAASG,MAAT,EAAiB,CAACf,KAAD,CAAjB,CAAP;;;KAZuB;;;WAkBtB,IAAP;GAlBF;;;AAsBF,SAASkB,WAAT,CAAqBC,MAArB,EAA6BX,OAA7B,EAAsCY,kBAAtC,EAAiE;MAA3BA,kBAA2B;IAA3BA,kBAA2B,GAAN,IAAM;;;MACzDC,YAAY,GAAGhH,MAAM,CAACC,IAAP,CAAY6G,MAAZ,CAArB;;OAEK,IAAIH,CAAC,GAAG,CAAR,EAAWM,GAAG,GAAGD,YAAY,CAACJ,MAAnC,EAA2CD,CAAC,GAAGM,GAA/C,EAAoDN,CAAC,EAArD,EAAyD;QACjDhB,KAAK,GAAGmB,MAAM,CAACE,YAAY,CAACL,CAAD,CAAb,CAApB;;QAEIhB,KAAK,CAACuB,eAAN,KAA0Bf,OAA1B,IAAqCR,KAAK,CAACoB,kBAAN,KAA6BA,kBAAtE,EAA0F;aACjFpB,KAAP;;;;SAIG,IAAP;;;AAGF,SAASwB,eAAT,CAAyBC,iBAAzB,EAA4CjB,OAA5C,EAAqDkB,YAArD,EAAmE;MAC3DC,UAAU,GAAG,OAAOnB,OAAP,KAAmB,QAAtC;MACMe,eAAe,GAAGI,UAAU,GAAGD,YAAH,GAAkBlB,OAApD,CAFiE;;MAK7DoB,SAAS,GAAGH,iBAAiB,CAACzC,OAAlB,CAA0BG,cAA1B,EAA0C,EAA1C,CAAhB;MACM0C,MAAM,GAAGrC,YAAY,CAACoC,SAAD,CAA3B;;MAEIC,MAAJ,EAAY;IACVD,SAAS,GAAGC,MAAZ;;;MAGIC,QAAQ,GAAGnC,YAAY,CAACoC,OAAb,CAAqBH,SAArB,IAAkC,CAAC,CAApD;;MAEI,CAACE,QAAL,EAAe;IACbF,SAAS,GAAGH,iBAAZ;;;SAGK,CAACE,UAAD,EAAaJ,eAAb,EAA8BK,SAA9B,CAAP;;;AAGF,SAASI,UAAT,CAAoB9J,OAApB,EAA6BuJ,iBAA7B,EAAgDjB,OAAhD,EAAyDkB,YAAzD,EAAuEjB,MAAvE,EAA+E;MACzE,OAAOgB,iBAAP,KAA6B,QAA7B,IAAyC,CAACvJ,OAA9C,EAAuD;;;;MAInD,CAACsI,OAAL,EAAc;IACZA,OAAO,GAAGkB,YAAV;IACAA,YAAY,GAAG,IAAf;;;yBAG+CF,eAAe,CAACC,iBAAD,EAAoBjB,OAApB,EAA6BkB,YAA7B,CAVa;MAUtEC,UAVsE;MAU1DJ,eAV0D;MAUzCK,SAVyC;;MAWvET,MAAM,GAAGrB,QAAQ,CAAC5H,OAAD,CAAvB;MACM+J,QAAQ,GAAGd,MAAM,CAACS,SAAD,CAAN,KAAsBT,MAAM,CAACS,SAAD,CAAN,GAAoB,EAA1C,CAAjB;MACMM,UAAU,GAAGhB,WAAW,CAACe,QAAD,EAAWV,eAAX,EAA4BI,UAAU,GAAGnB,OAAH,GAAa,IAAnD,CAA9B;;MAEI0B,UAAJ,EAAgB;IACdA,UAAU,CAACzB,MAAX,GAAoByB,UAAU,CAACzB,MAAX,IAAqBA,MAAzC;;;;MAKIZ,GAAG,GAAGD,WAAW,CAAC2B,eAAD,EAAkBE,iBAAiB,CAACzC,OAAlB,CAA0BE,cAA1B,EAA0C,EAA1C,CAAlB,CAAvB;MACMqB,EAAE,GAAGoB,UAAU,GAAGd,0BAA0B,CAAC3I,OAAD,EAAUsI,OAAV,EAAmBkB,YAAnB,CAA7B,GAAgEpB,gBAAgB,CAACpI,OAAD,EAAUsI,OAAV,CAArG;EAEAD,EAAE,CAACa,kBAAH,GAAwBO,UAAU,GAAGnB,OAAH,GAAa,IAA/C;EACAD,EAAE,CAACgB,eAAH,GAAqBA,eAArB;EACAhB,EAAE,CAACE,MAAH,GAAYA,MAAZ;EACAF,EAAE,CAAChB,QAAH,GAAcM,GAAd;EACAoC,QAAQ,CAACpC,GAAD,CAAR,GAAgBU,EAAhB;EAEArI,OAAO,CAAC6B,gBAAR,CAAyB6H,SAAzB,EAAoCrB,EAApC,EAAwCoB,UAAxC;;;AAGF,SAASQ,aAAT,CAAuBjK,OAAvB,EAAgCiJ,MAAhC,EAAwCS,SAAxC,EAAmDpB,OAAnD,EAA4DY,kBAA5D,EAAgF;MACxEb,EAAE,GAAGW,WAAW,CAACC,MAAM,CAACS,SAAD,CAAP,EAAoBpB,OAApB,EAA6BY,kBAA7B,CAAtB;;MAEI,CAACb,EAAL,EAAS;;;;EAITrI,OAAO,CAAC4B,mBAAR,CAA4B8H,SAA5B,EAAuCrB,EAAvC,EAA2CxB,OAAO,CAACqC,kBAAD,CAAlD;SACOD,MAAM,CAACS,SAAD,CAAN,CAAkBrB,EAAE,CAAChB,QAArB,CAAP;;;AAGF,SAAS6C,wBAAT,CAAkClK,OAAlC,EAA2CiJ,MAA3C,EAAmDS,SAAnD,EAA8DS,SAA9D,EAAyE;MACjEC,iBAAiB,GAAGnB,MAAM,CAACS,SAAD,CAAN,IAAqB,EAA/C;EAEAvH,MAAM,CAACC,IAAP,CAAYgI,iBAAZ,EACG/H,OADH,CACW,UAAAgI,UAAU,EAAI;QACjBA,UAAU,CAACR,OAAX,CAAmBM,SAAnB,IAAgC,CAAC,CAArC,EAAwC;UAChCrC,KAAK,GAAGsC,iBAAiB,CAACC,UAAD,CAA/B;MAEAJ,aAAa,CAACjK,OAAD,EAAUiJ,MAAV,EAAkBS,SAAlB,EAA6B5B,KAAK,CAACuB,eAAnC,EAAoDvB,KAAK,CAACoB,kBAA1D,CAAb;;GALN;;;AAUF,IAAMV,YAAY,GAAG;EACnB8B,EADmB,cAChBtK,OADgB,EACP8H,KADO,EACAQ,OADA,EACSkB,YADT,EACuB;IACxCM,UAAU,CAAC9J,OAAD,EAAU8H,KAAV,EAAiBQ,OAAjB,EAA0BkB,YAA1B,EAAwC,KAAxC,CAAV;GAFiB;EAKnBe,GALmB,eAKfvK,OALe,EAKN8H,KALM,EAKCQ,OALD,EAKUkB,YALV,EAKwB;IACzCM,UAAU,CAAC9J,OAAD,EAAU8H,KAAV,EAAiBQ,OAAjB,EAA0BkB,YAA1B,EAAwC,IAAxC,CAAV;GANiB;EASnBf,GATmB,eASfzI,OATe,EASNuJ,iBATM,EASajB,OATb,EASsBkB,YATtB,EASoC;QACjD,OAAOD,iBAAP,KAA6B,QAA7B,IAAyC,CAACvJ,OAA9C,EAAuD;;;;4BAINsJ,eAAe,CAACC,iBAAD,EAAoBjB,OAApB,EAA6BkB,YAA7B,CALX;QAK9CC,UAL8C;QAKlCJ,eALkC;QAKjBK,SALiB;;QAM/Cc,WAAW,GAAGd,SAAS,KAAKH,iBAAlC;QACMN,MAAM,GAAGrB,QAAQ,CAAC5H,OAAD,CAAvB;QACMyK,WAAW,GAAGlB,iBAAiB,CAACmB,MAAlB,CAAyB,CAAzB,MAAgC,GAApD;;QAEI,OAAOrB,eAAP,KAA2B,WAA/B,EAA4C;;UAEtC,CAACJ,MAAD,IAAW,CAACA,MAAM,CAACS,SAAD,CAAtB,EAAmC;;;;MAInCO,aAAa,CAACjK,OAAD,EAAUiJ,MAAV,EAAkBS,SAAlB,EAA6BL,eAA7B,EAA8CI,UAAU,GAAGnB,OAAH,GAAa,IAArE,CAAb;;;;QAIEmC,WAAJ,EAAiB;MACftI,MAAM,CAACC,IAAP,CAAY6G,MAAZ,EACG5G,OADH,CACW,UAAAsI,YAAY,EAAI;QACvBT,wBAAwB,CAAClK,OAAD,EAAUiJ,MAAV,EAAkB0B,YAAlB,EAAgCpB,iBAAiB,CAACqB,MAAlB,CAAyB,CAAzB,CAAhC,CAAxB;OAFJ;;;QAMIR,iBAAiB,GAAGnB,MAAM,CAACS,SAAD,CAAN,IAAqB,EAA/C;IACAvH,MAAM,CAACC,IAAP,CAAYgI,iBAAZ,EACG/H,OADH,CACW,UAAAwI,WAAW,EAAI;UAChBR,UAAU,GAAGQ,WAAW,CAAC/D,OAAZ,CAAoBK,aAApB,EAAmC,EAAnC,CAAnB;;UAEI,CAACqD,WAAD,IAAgBjB,iBAAiB,CAACM,OAAlB,CAA0BQ,UAA1B,IAAwC,CAAC,CAA7D,EAAgE;YACxDvC,KAAK,GAAGsC,iBAAiB,CAACS,WAAD,CAA/B;QAEAZ,aAAa,CAACjK,OAAD,EAAUiJ,MAAV,EAAkBS,SAAlB,EAA6B5B,KAAK,CAACuB,eAAnC,EAAoDvB,KAAK,CAACoB,kBAA1D,CAAb;;KAPN;GArCiB;EAiDnB4B,OAjDmB,mBAiDX9K,OAjDW,EAiDF8H,KAjDE,EAiDKiD,IAjDL,EAiDW;QACxB,OAAOjD,KAAP,KAAiB,QAAjB,IAA6B,CAAC9H,OAAlC,EAA2C;aAClC,IAAP;;;QAGI0J,SAAS,GAAG5B,KAAK,CAAChB,OAAN,CAAcG,cAAd,EAA8B,EAA9B,CAAlB;QACMuD,WAAW,GAAG1C,KAAK,KAAK4B,SAA9B;QACME,QAAQ,GAAGnC,YAAY,CAACoC,OAAb,CAAqBH,SAArB,IAAkC,CAAC,CAApD;QAEIsB,WAAJ;QACIvF,OAAO,GAAG,IAAd;QACIwF,cAAc,GAAG,IAArB;QACIjF,gBAAgB,GAAG,KAAvB;QACIhF,GAAG,GAAG,IAAV;;QAEIwJ,WAAW,IAAI,OAAOU,MAAP,KAAa,WAAhC,EAA6C;MAC3CF,WAAW,GAAGE,MAAC,CAAChF,KAAF,CAAQ4B,KAAR,EAAeiD,IAAf,CAAd;MAEAG,MAAC,CAAClL,OAAD,CAAD,CAAW8K,OAAX,CAAmBE,WAAnB;MACAvF,OAAO,GAAG,CAACuF,WAAW,CAACG,oBAAZ,EAAX;MACAF,cAAc,GAAG,CAACD,WAAW,CAACI,6BAAZ,EAAlB;MACApF,gBAAgB,GAAGgF,WAAW,CAACK,kBAAZ,EAAnB;;;QAGEzB,QAAJ,EAAc;MACZ5I,GAAG,GAAGnB,QAAQ,CAACoB,WAAT,CAAqB,YAArB,CAAN;MACAD,GAAG,CAACE,SAAJ,CAAcwI,SAAd,EAAyBjE,OAAzB,EAAkC,IAAlC;KAFF,MAGO;MACLzE,GAAG,GAAGoE,iBAAiB,CAAC0C,KAAD,EAAQ;QAC7BrC,OAAO,EAAPA,OAD6B;QAE7BC,UAAU,EAAE;OAFS,CAAvB;KA5B0B;;;QAmCxB,OAAOqF,IAAP,KAAgB,WAApB,EAAiC;MAC/B5I,MAAM,CAACC,IAAP,CAAY2I,IAAZ,EACG1I,OADH,CACW,UAAA8B,GAAG,EAAI;QACdhC,MAAM,CAACgE,cAAP,CAAsBnF,GAAtB,EAA2BmD,GAA3B,EAAgC;UAC9BE,GAD8B,iBACxB;mBACG0G,IAAI,CAAC5G,GAAD,CAAX;;SAFJ;OAFJ;;;QAUE6B,gBAAJ,EAAsB;MACpBhF,GAAG,CAAC+E,cAAJ;;UAEI,CAACM,mCAAL,EAA0C;QACxClE,MAAM,CAACgE,cAAP,CAAsBnF,GAAtB,EAA2B,kBAA3B,EAA+C;UAC7CqD,GAAG,EAAE;mBAAM,IAAN;;SADP;;;;QAMA4G,cAAJ,EAAoB;MAClBjL,OAAO,CAACmB,aAAR,CAAsBH,GAAtB;;;QAGEA,GAAG,CAACgF,gBAAJ,IAAwB,OAAOgF,WAAP,KAAuB,WAAnD,EAAgE;MAC9DA,WAAW,CAACjF,cAAZ;;;WAGK/E,GAAP;;CAjHJ;;ACrOA;;;;;;AAOA,AAGA;;;;;;AAMA,IAAMsK,SAAS,GAAG,CAAlB;AAEA,IAAMC,cAAc,GAAG;EACrBxG,OADqB,qBACb/E,OADa,EACJC,QADI,EACM;WAClB8E,OAAO,CAACzF,IAAR,CAAaU,OAAb,EAAsBC,QAAtB,CAAP;GAFmB;EAKrBgF,IALqB,kBAKhBhF,QALgB,EAKND,OALM,EAK8B;QAApCA,OAAoC;MAApCA,OAAoC,GAA1BH,QAAQ,CAAC0D,eAAiB;;;QAC7C,OAAOtD,QAAP,KAAoB,QAAxB,EAAkC;aACzB,IAAP;;;WAGKuL,IAAM,CAAClM,IAAP,CAAYU,OAAZ,EAAqBC,QAArB,CAAP;GAVmB;EAarBkF,OAbqB,qBAablF,QAba,EAaHD,OAbG,EAaiC;QAApCA,OAAoC;MAApCA,OAAoC,GAA1BH,QAAQ,CAAC0D,eAAiB;;;QAChD,OAAOtD,QAAP,KAAoB,QAAxB,EAAkC;aACzB,IAAP;;;WAGKkF,OAAO,CAAC7F,IAAR,CAAaU,OAAb,EAAsBC,QAAtB,CAAP;GAlBmB;EAqBrBwL,QArBqB,oBAqBZzL,OArBY,EAqBHC,QArBG,EAqBO;;;QACtB,OAAOA,QAAP,KAAoB,QAAxB,EAAkC;aACzB,IAAP;;;QAGIwL,QAAQ,GAAG3I,SAAS,CAAC9C,OAAO,CAACyL,QAAT,CAA1B;WAEOA,QAAQ,CAACC,MAAT,CAAgB,UAAAC,KAAK;aAAI,KAAI,CAAC5G,OAAL,CAAa4G,KAAb,EAAoB1L,QAApB,CAAJ;KAArB,CAAP;GA5BmB;EA+BrB2L,OA/BqB,mBA+Bb5L,OA/Ba,EA+BJC,QA/BI,EA+BM;QACrB,OAAOA,QAAP,KAAoB,QAAxB,EAAkC;aACzB,IAAP;;;QAGI2L,OAAO,GAAG,EAAhB;QACIC,QAAQ,GAAG7L,OAAO,CAACmD,UAAvB;;WAEO0I,QAAQ,IAAIA,QAAQ,CAACxK,QAAT,KAAsByK,IAAI,CAACC,YAAvC,IAAuDF,QAAQ,CAACxK,QAAT,KAAsBiK,SAApF,EAA+F;UACzF,KAAKvG,OAAL,CAAa8G,QAAb,EAAuB5L,QAAvB,CAAJ,EAAsC;QACpC2L,OAAO,CAACI,IAAR,CAAaH,QAAb;;;MAGFA,QAAQ,GAAGA,QAAQ,CAAC1I,UAApB;;;WAGKyI,OAAP;GA/CmB;EAkDrB5G,OAlDqB,qBAkDbhF,OAlDa,EAkDJC,QAlDI,EAkDM;QACrB,OAAOA,QAAP,KAAoB,QAAxB,EAAkC;aACzB,IAAP;;;WAGK+E,OAAO,CAAC1F,IAAR,CAAaU,OAAb,EAAsBC,QAAtB,CAAP;GAvDmB;EA0DrBgM,IA1DqB,gBA0DhBjM,OA1DgB,EA0DPC,QA1DO,EA0DG;QAClB,OAAOA,QAAP,KAAoB,QAAxB,EAAkC;aACzB,IAAP;;;QAGIiM,QAAQ,GAAG,EAAjB;QACIC,QAAQ,GAAGnM,OAAO,CAACoM,eAAvB;;WAEOD,QAAQ,IAAIA,QAAQ,CAAC9K,QAAT,KAAsByK,IAAI,CAACC,YAAvC,IAAuDI,QAAQ,CAAC9K,QAAT,KAAsBiK,SAApF,EAA+F;UACzF,KAAKvG,OAAL,CAAaoH,QAAb,EAAuBlM,QAAvB,CAAJ,EAAsC;QACpCiM,QAAQ,CAACF,IAAT,CAAcG,QAAd;;;MAGFA,QAAQ,GAAGA,QAAQ,CAACC,eAApB;;;WAGKF,QAAP;;CA1EJ;;ACAA;;;;;;AAMA,IAAMG,IAAI,GAAG,OAAb;AACA,IAAMC,OAAO,GAAG,OAAhB;AACA,IAAMC,QAAQ,GAAG,UAAjB;AACA,IAAMC,SAAS,SAAOD,QAAtB;AACA,IAAME,YAAY,GAAG,WAArB;AAEA,IAAMC,QAAQ,GAAG;EACfC,OAAO,EAAE;CADX;AAIA,IAAMzG,OAAK,GAAG;EACZ0G,KAAK,YAAUJ,SADH;EAEZK,MAAM,aAAWL,SAFL;EAGZM,cAAc,YAAUN,SAAV,GAAsBC;CAHtC;AAMA,IAAMM,SAAS,GAAG;EAChBC,KAAK,EAAE,OADS;EAEhBC,IAAI,EAAE,MAFU;EAGhBC,IAAI,EAAE;;;;;;;CAHR;;IAYMC;;;iBACQnN,OAAZ,EAAqB;SACdoN,QAAL,GAAgBpN,OAAhB;;QACI,KAAKoN,QAAT,EAAmB;MACjB5I,IAAI,CAACC,OAAL,CAAazE,OAAb,EAAsBuM,QAAtB,EAAgC,IAAhC;;;;;;;;SAYJc,QAAA,eAAMrN,OAAN,EAAe;QACTsN,WAAW,GAAG,KAAKF,QAAvB;;QACIpN,OAAJ,EAAa;MACXsN,WAAW,GAAG,KAAKC,eAAL,CAAqBvN,OAArB,CAAd;;;QAGIwN,WAAW,GAAG,KAAKC,kBAAL,CAAwBH,WAAxB,CAApB;;QAEIE,WAAW,KAAK,IAAhB,IAAwBA,WAAW,CAACxH,gBAAxC,EAA0D;;;;SAIrD0H,cAAL,CAAoBJ,WAApB;;;SAGFK,UAAA,mBAAU;IACRnJ,IAAI,CAACI,UAAL,CAAgB,KAAKwI,QAArB,EAA+Bb,QAA/B;SACKa,QAAL,GAAgB,IAAhB;;;;SAKFG,kBAAA,yBAAgBvN,OAAhB,EAAyB;QACjBC,QAAQ,GAAGF,sBAAsB,CAACC,OAAD,CAAvC;QACI4N,MAAM,GAAG,KAAb;;QAEI3N,QAAJ,EAAc;MACZ2N,MAAM,GAAGrC,cAAc,CAACpG,OAAf,CAAuBlF,QAAvB,CAAT;;;QAGE,CAAC2N,MAAL,EAAa;MACXA,MAAM,GAAGrC,cAAc,CAACvG,OAAf,CAAuBhF,OAAvB,QAAoC+M,SAAS,CAACC,KAA9C,CAAT;;;WAGKY,MAAP;;;SAGFH,qBAAA,4BAAmBzN,OAAnB,EAA4B;WACnBwI,YAAY,CAACsC,OAAb,CAAqB9K,OAArB,EAA8BkG,OAAK,CAAC0G,KAApC,CAAP;;;SAGFc,iBAAA,wBAAe1N,OAAf,EAAwB;;;IACtBA,OAAO,CAAC6N,SAAR,CAAkBC,MAAlB,CAAyBf,SAAS,CAACG,IAAnC;;QAEI,CAAClN,OAAO,CAAC6N,SAAR,CAAkBE,QAAlB,CAA2BhB,SAAS,CAACE,IAArC,CAAL,EAAiD;WAC1Ce,eAAL,CAAqBhO,OAArB;;;;;QAIIS,kBAAkB,GAAGF,gCAAgC,CAACP,OAAD,CAA3D;IAEAwI,YAAY,CACT+B,GADH,CACOvK,OADP,EACgBhB,cADhB,EACgC,UAAA8I,KAAK;aAAI,KAAI,CAACkG,eAAL,CAAqBhO,OAArB,EAA8B8H,KAA9B,CAAJ;KADrC;IAEAxG,oBAAoB,CAACtB,OAAD,EAAUS,kBAAV,CAApB;;;SAGFuN,kBAAA,yBAAgBhO,OAAhB,EAAyB;QACnBA,OAAO,CAACmD,UAAZ,EAAwB;MACtBnD,OAAO,CAACmD,UAAR,CAAmB8K,WAAnB,CAA+BjO,OAA/B;;;IAGFwI,YAAY,CAACsC,OAAb,CAAqB9K,OAArB,EAA8BkG,OAAK,CAAC2G,MAApC;;;;QAKKqB,mBAAP,0BAAwBjM,MAAxB,EAAgC;WACvB,KAAKkM,IAAL,CAAU,YAAY;UACvB/J,IAAI,GAAGI,IAAI,CAACG,OAAL,CAAa,IAAb,EAAmB4H,QAAnB,CAAX;;UAEI,CAACnI,IAAL,EAAW;QACTA,IAAI,GAAG,IAAI+I,KAAJ,CAAU,IAAV,CAAP;;;UAGElL,MAAM,KAAK,OAAf,EAAwB;QACtBmC,IAAI,CAACnC,MAAD,CAAJ,CAAa,IAAb;;KARG,CAAP;;;QAaKmM,iBAAP,wBAAsBC,aAAtB,EAAqC;WAC5B,UAAUvG,KAAV,EAAiB;UAClBA,KAAJ,EAAW;QACTA,KAAK,CAAC/B,cAAN;;;MAGFsI,aAAa,CAAChB,KAAd,CAAoB,IAApB;KALF;;;QASKiB,eAAP,sBAAoBtO,OAApB,EAA6B;WACpBwE,IAAI,CAACG,OAAL,CAAa3E,OAAb,EAAsBuM,QAAtB,CAAP;;;;;wBAjGmB;aACZD,OAAP;;;;;;;;;;;;;AAyGJ9D,YAAY,CACT8B,EADH,CACMzK,QADN,EACgBqG,OAAK,CAAC4G,cADtB,EACsCJ,QAAQ,CAACC,OAD/C,EACwDQ,KAAK,CAACiB,cAAN,CAAqB,IAAIjB,KAAJ,EAArB,CADxD;;;;;;;;AAUA,IAAI,OAAOjC,MAAP,KAAa,WAAjB,EAA8B;MACtBqD,kBAAkB,GAAGrD,MAAC,CAAC7C,EAAF,CAAKgE,IAAL,CAA3B;EACAnB,MAAC,CAAC7C,EAAF,CAAKgE,IAAL,IAAac,KAAK,CAACe,gBAAnB;EACAhD,MAAC,CAAC7C,EAAF,CAAKgE,IAAL,EAAWmC,WAAX,GAAyBrB,KAAzB;;EACAjC,MAAC,CAAC7C,EAAF,CAAKgE,IAAL,EAAWoC,UAAX,GAAwB,YAAM;IAC5BvD,MAAC,CAAC7C,EAAF,CAAKgE,IAAL,IAAakC,kBAAb;WACOpB,KAAK,CAACe,gBAAb;GAFF;;;AC1KF;;;;;;AAMA,IAAM7B,MAAI,GAAG,QAAb;AACA,IAAMC,SAAO,GAAG,OAAhB;AACA,IAAMC,UAAQ,GAAG,WAAjB;AACA,IAAMC,WAAS,SAAOD,UAAtB;AACA,IAAME,cAAY,GAAG,WAArB;AAEA,IAAMM,WAAS,GAAG;EAChB2B,MAAM,EAAE,QADQ;EAEhBC,MAAM,EAAE,KAFQ;EAGhBC,KAAK,EAAE;CAHT;AAMA,IAAMlC,UAAQ,GAAG;EACfmC,kBAAkB,EAAE,yBADL;EAEfC,WAAW,EAAE,yBAFE;EAGfC,KAAK,EAAE,4BAHQ;EAIfL,MAAM,EAAE,SAJO;EAKfC,MAAM,EAAE;CALV;AAQA,IAAMzI,OAAK,GAAG;EACZ4G,cAAc,YAAUN,WAAV,GAAsBC,cADxB;EAEZuC,cAAc,YAAUxC,WAAV,GAAsBC,cAFxB;EAGZwC,aAAa,WAASzC,WAAT,GAAqBC;;;;;;;CAHpC;;IAYMyC;;;kBACQlP,OAAZ,EAAqB;SACdoN,QAAL,GAAgBpN,OAAhB;IACAwE,IAAI,CAACC,OAAL,CAAazE,OAAb,EAAsBuM,UAAtB,EAAgC,IAAhC;;;;;;;SAWF4C,SAAA,kBAAS;QACHC,kBAAkB,GAAG,IAAzB;QACIC,cAAc,GAAG,IAArB;QAEM/B,WAAW,GAAG/B,cAAc,CAACvG,OAAf,CAClB,KAAKoI,QADa,EAElBV,UAAQ,CAACoC,WAFS,CAApB;;QAKIxB,WAAJ,EAAiB;UACTgC,KAAK,GAAG/D,cAAc,CAACpG,OAAf,CAAuBuH,UAAQ,CAACqC,KAAhC,EAAuC,KAAK3B,QAA5C,CAAd;;UAEIkC,KAAJ,EAAW;YACLA,KAAK,CAACtH,IAAN,KAAe,OAAnB,EAA4B;cACtBsH,KAAK,CAACC,OAAN,IACF,KAAKnC,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAAC2B,MAA3C,CADF,EACsD;YACpDU,kBAAkB,GAAG,KAArB;WAFF,MAGO;gBACCI,aAAa,GAAGjE,cAAc,CAACpG,OAAf,CAAuBuH,UAAQ,CAACgC,MAAhC,EAAwCpB,WAAxC,CAAtB;;gBAEIkC,aAAJ,EAAmB;cACjBA,aAAa,CAAC3B,SAAd,CAAwBC,MAAxB,CAA+Bf,WAAS,CAAC2B,MAAzC;;;;;YAKFU,kBAAJ,EAAwB;cAClBE,KAAK,CAACG,YAAN,CAAmB,UAAnB,KACFnC,WAAW,CAACmC,YAAZ,CAAyB,UAAzB,CADE,IAEFH,KAAK,CAACzB,SAAN,CAAgBE,QAAhB,CAAyB,UAAzB,CAFE,IAGFT,WAAW,CAACO,SAAZ,CAAsBE,QAAtB,CAA+B,UAA/B,CAHF,EAG8C;;;;UAI9CuB,KAAK,CAACC,OAAN,GAAgB,CAAC,KAAKnC,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAAC2B,MAA3C,CAAjB;UACAlG,YAAY,CAACsC,OAAb,CAAqBwE,KAArB,EAA4B,QAA5B;;;QAGFA,KAAK,CAACI,KAAN;QACAL,cAAc,GAAG,KAAjB;;;;QAIAA,cAAJ,EAAoB;WACbjC,QAAL,CAAcuC,YAAd,CAA2B,cAA3B,EACE,CAAC,KAAKvC,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAAC2B,MAA3C,CADH;;;QAIEU,kBAAJ,EAAwB;WACjBhC,QAAL,CAAcS,SAAd,CAAwBsB,MAAxB,CAA+BpC,WAAS,CAAC2B,MAAzC;;;;SAIJf,UAAA,mBAAU;IACRnJ,IAAI,CAACI,UAAL,CAAgB,KAAKwI,QAArB,EAA+Bb,UAA/B;SACKa,QAAL,GAAgB,IAAhB;;;;SAKKc,mBAAP,0BAAwBjM,MAAxB,EAAgC;WACvB,KAAKkM,IAAL,CAAU,YAAY;UACvB/J,IAAI,GAAGI,IAAI,CAACG,OAAL,CAAa,IAAb,EAAmB4H,UAAnB,CAAX;;UAEI,CAACnI,IAAL,EAAW;QACTA,IAAI,GAAG,IAAI8K,MAAJ,CAAW,IAAX,CAAP;;;UAGEjN,MAAM,KAAK,QAAf,EAAyB;QACvBmC,IAAI,CAACnC,MAAD,CAAJ;;KARG,CAAP;;;SAaKqM,eAAP,sBAAoBtO,OAApB,EAA6B;WACpBwE,IAAI,CAACG,OAAL,CAAa3E,OAAb,EAAsBuM,UAAtB,CAAP;;;;;wBAjFmB;aACZD,SAAP;;;;;;;;;;;;;AA0FJ9D,YAAY,CAAC8B,EAAb,CAAgBzK,QAAhB,EAA0BqG,OAAK,CAAC4G,cAAhC,EAAgDJ,UAAQ,CAACmC,kBAAzD,EAA6E,UAAA/G,KAAK,EAAI;EACpFA,KAAK,CAAC/B,cAAN;MAEI6J,MAAM,GAAG9H,KAAK,CAACe,MAAnB;;MACI,CAAC+G,MAAM,CAAC/B,SAAP,CAAiBE,QAAjB,CAA0BhB,WAAS,CAAC4B,MAApC,CAAL,EAAkD;IAChDiB,MAAM,GAAGrE,cAAc,CAACvG,OAAf,CAAuB4K,MAAvB,EAA+BlD,UAAQ,CAACiC,MAAxC,CAAT;;;MAGEvK,IAAI,GAAGI,IAAI,CAACG,OAAL,CAAaiL,MAAb,EAAqBrD,UAArB,CAAX;;MACI,CAACnI,IAAL,EAAW;IACTA,IAAI,GAAG,IAAI8K,MAAJ,CAAWU,MAAX,CAAP;IACApL,IAAI,CAACC,OAAL,CAAamL,MAAb,EAAqBrD,UAArB,EAA+BnI,IAA/B;;;EAGFA,IAAI,CAAC+K,MAAL;CAdF;AAiBA3G,YAAY,CAAC8B,EAAb,CAAgBzK,QAAhB,EAA0BqG,OAAK,CAAC8I,cAAhC,EAAgDtC,UAAQ,CAACmC,kBAAzD,EAA6E,UAAA/G,KAAK,EAAI;MAC9E8H,MAAM,GAAGrE,cAAc,CAACvG,OAAf,CAAuB8C,KAAK,CAACe,MAA7B,EAAqC6D,UAAQ,CAACiC,MAA9C,CAAf;;MAEIiB,MAAJ,EAAY;IACVA,MAAM,CAAC/B,SAAP,CAAiBgC,GAAjB,CAAqB9C,WAAS,CAAC6B,KAA/B;;CAJJ;AAQApG,YAAY,CAAC8B,EAAb,CAAgBzK,QAAhB,EAA0BqG,OAAK,CAAC+I,aAAhC,EAA+CvC,UAAQ,CAACmC,kBAAxD,EAA4E,UAAA/G,KAAK,EAAI;MAC7E8H,MAAM,GAAGrE,cAAc,CAACvG,OAAf,CAAuB8C,KAAK,CAACe,MAA7B,EAAqC6D,UAAQ,CAACiC,MAA9C,CAAf;;MAEIiB,MAAJ,EAAY;IACVA,MAAM,CAAC/B,SAAP,CAAiBC,MAAjB,CAAwBf,WAAS,CAAC6B,KAAlC;;CAJJ;;;;;;;;AAeA,IAAI,OAAO1D,MAAP,KAAa,WAAjB,EAA8B;MACtBqD,oBAAkB,GAAGrD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,CAA3B;EACAnB,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAa6C,MAAM,CAAChB,gBAApB;EACAhD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWmC,WAAX,GAAyBU,MAAzB;;EAEAhE,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWoC,UAAX,GAAwB,YAAM;IAC5BvD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAakC,oBAAb;WACOW,MAAM,CAAChB,gBAAd;GAFF;;;AClMF;;;;;;AAOA,SAAS4B,aAAT,CAAuBC,GAAvB,EAA4B;MACtBA,GAAG,KAAK,MAAZ,EAAoB;WACX,IAAP;;;MAGEA,GAAG,KAAK,OAAZ,EAAqB;WACZ,KAAP;;;MAGEA,GAAG,KAAKC,MAAM,CAACD,GAAD,CAAN,CAAY1Q,QAAZ,EAAZ,EAAoC;WAC3B2Q,MAAM,CAACD,GAAD,CAAb;;;MAGEA,GAAG,KAAK,EAAR,IAAcA,GAAG,KAAK,MAA1B,EAAkC;WACzB,IAAP;;;SAGKA,GAAP;;;AAGF,SAASE,gBAAT,CAA0B9L,GAA1B,EAA+B;SACtBA,GAAG,CAAC2C,OAAJ,CAAY,QAAZ,EAAsB,UAAAoJ,GAAG;WAAIA,GAAG,CAAC1Q,WAAJ,EAAJ;GAAzB,CAAP;;;AAGF,IAAM2Q,WAAW,GAAG;EAClBC,gBADkB,4BACDpQ,OADC,EACQmE,GADR,EACa3B,KADb,EACoB;IACpCxC,OAAO,CAAC2P,YAAR,WAA6BM,gBAAgB,CAAC9L,GAAD,CAA7C,EAAsD3B,KAAtD;GAFgB;EAKlB6N,mBALkB,+BAKErQ,OALF,EAKWmE,GALX,EAKgB;IAChCnE,OAAO,CAAC+G,eAAR,WAAgCkJ,gBAAgB,CAAC9L,GAAD,CAAhD;GANgB;EASlBmM,iBATkB,6BASAtQ,OATA,EASS;QACrB,CAACA,OAAL,EAAc;aACL,EAAP;;;QAGIuQ,UAAU,qBACXvQ,OAAO,CAACwQ,OADG,CAAhB;;IAIArO,MAAM,CAACC,IAAP,CAAYmO,UAAZ,EAAwBlO,OAAxB,CAAgC,UAAA8B,GAAG,EAAI;MACrCoM,UAAU,CAACpM,GAAD,CAAV,GAAkB2L,aAAa,CAACS,UAAU,CAACpM,GAAD,CAAX,CAA/B;KADF;WAIOoM,UAAP;GAtBgB;EAyBlBE,gBAzBkB,4BAyBDzQ,OAzBC,EAyBQmE,GAzBR,EAyBa;WACtB2L,aAAa,CAAC9P,OAAO,CAACE,YAAR,WAA6B+P,gBAAgB,CAAC9L,GAAD,CAA7C,CAAD,CAApB;GA1BgB;EA6BlBuM,MA7BkB,kBA6BX1Q,OA7BW,EA6BF;QACR2Q,IAAI,GAAG3Q,OAAO,CAAC4Q,qBAAR,EAAb;WAEO;MACLC,GAAG,EAAEF,IAAI,CAACE,GAAL,GAAWhR,QAAQ,CAACiR,IAAT,CAAcC,SADzB;MAELC,IAAI,EAAEL,IAAI,CAACK,IAAL,GAAYnR,QAAQ,CAACiR,IAAT,CAAcG;KAFlC;GAhCgB;EAsClBC,QAtCkB,oBAsCTlR,OAtCS,EAsCA;WACT;MACL6Q,GAAG,EAAE7Q,OAAO,CAACmR,SADR;MAELH,IAAI,EAAEhR,OAAO,CAACoR;KAFhB;GAvCgB;EA6ClBC,WA7CkB,uBA6CNrR,OA7CM,EA6CGsR,SA7CH,EA6Cc;QAC1B,CAACtR,OAAL,EAAc;;;;QAIVA,OAAO,CAAC6N,SAAR,CAAkBE,QAAlB,CAA2BuD,SAA3B,CAAJ,EAA2C;MACzCtR,OAAO,CAAC6N,SAAR,CAAkBC,MAAlB,CAAyBwD,SAAzB;KADF,MAEO;MACLtR,OAAO,CAAC6N,SAAR,CAAkBgC,GAAlB,CAAsByB,SAAtB;;;CArDN;;ACPA;;;;;;AAMA,IAAMjF,MAAI,GAAG,UAAb;AACA,IAAMC,SAAO,GAAG,OAAhB;AACA,IAAMC,UAAQ,GAAG,aAAjB;AACA,IAAMC,WAAS,SAAOD,UAAtB;AACA,IAAME,cAAY,GAAG,WAArB;AACA,IAAM8E,kBAAkB,GAAG,EAA3B;;AACA,IAAMC,mBAAmB,GAAG,EAA5B;;AACA,IAAMC,sBAAsB,GAAG,GAA/B;;AACA,IAAMC,eAAe,GAAG,EAAxB;AAEA,IAAMC,OAAO,GAAG;EACdC,QAAQ,EAAE,IADI;EAEdC,QAAQ,EAAE,IAFI;EAGdC,KAAK,EAAE,KAHO;EAIdC,KAAK,EAAE,OAJO;EAKdC,IAAI,EAAE,IALQ;EAMdC,KAAK,EAAE;CANT;AASA,IAAMC,WAAW,GAAG;EAClBN,QAAQ,EAAE,kBADQ;EAElBC,QAAQ,EAAE,SAFQ;EAGlBC,KAAK,EAAE,kBAHW;EAIlBC,KAAK,EAAE,kBAJW;EAKlBC,IAAI,EAAE,SALY;EAMlBC,KAAK,EAAE;CANT;AASA,IAAME,SAAS,GAAG;EAChBC,IAAI,EAAE,MADU;EAEhBC,IAAI,EAAE,MAFU;EAGhBC,IAAI,EAAE,MAHU;EAIhBC,KAAK,EAAE;CAJT;AAOA,IAAMrM,OAAK,GAAG;EACZsM,KAAK,YAAUhG,WADH;EAEZiG,IAAI,WAASjG,WAFD;EAGZkG,OAAO,cAAYlG,WAHP;EAIZmG,UAAU,iBAAenG,WAJb;EAKZoG,UAAU,iBAAepG,WALb;EAMZqG,UAAU,iBAAerG,WANb;EAOZsG,SAAS,gBAActG,WAPX;EAQZuG,QAAQ,eAAavG,WART;EASZwG,WAAW,kBAAgBxG,WATf;EAUZyG,SAAS,gBAAczG,WAVX;EAWZ0G,UAAU,gBAAc1G,WAXZ;EAYZ2G,aAAa,WAAS3G,WAAT,GAAqBC,cAZtB;EAaZK,cAAc,YAAUN,WAAV,GAAsBC;CAbtC;AAgBA,IAAMM,WAAS,GAAG;EAChBqG,QAAQ,EAAE,UADM;EAEhB1E,MAAM,EAAE,QAFQ;EAGhB8D,KAAK,EAAE,OAHS;EAIhBD,KAAK,EAAE,qBAJS;EAKhBD,IAAI,EAAE,oBALU;EAMhBF,IAAI,EAAE,oBANU;EAOhBC,IAAI,EAAE,oBAPU;EAQhBgB,IAAI,EAAE,eARU;EAShBC,aAAa,EAAE;CATjB;AAYA,IAAM5G,UAAQ,GAAG;EACfgC,MAAM,EAAE,SADO;EAEf6E,WAAW,EAAE,uBAFE;EAGfF,IAAI,EAAE,gBAHS;EAIfG,QAAQ,EAAE,oBAJK;EAKfC,SAAS,EAAE,0CALI;EAMfC,UAAU,EAAE,sBANG;EAOfC,UAAU,EAAE,+BAPG;EAQfC,SAAS,EAAE;CARb;AAWA,IAAMC,WAAW,GAAG;EAClBC,KAAK,EAAE,OADW;EAElBC,GAAG,EAAE;;;;;;;CAFP;;IAUMC;;;oBACQhU,OAAZ,EAAqBiC,MAArB,EAA6B;SACtBgS,MAAL,GAAc,IAAd;SACKC,SAAL,GAAiB,IAAjB;SACKC,cAAL,GAAsB,IAAtB;SACKC,SAAL,GAAiB,KAAjB;SACKC,UAAL,GAAkB,KAAlB;SACKC,YAAL,GAAoB,IAApB;SACKC,WAAL,GAAmB,CAAnB;SACKC,WAAL,GAAmB,CAAnB;SAEKC,OAAL,GAAe,KAAKC,UAAL,CAAgBzS,MAAhB,CAAf;SACKmL,QAAL,GAAgBpN,OAAhB;SACK2U,kBAAL,GAA0BpJ,cAAc,CAACpG,OAAf,CAAuBuH,UAAQ,CAACgH,UAAhC,EAA4C,KAAKtG,QAAjD,CAA1B;SACKwH,eAAL,GAAuB,kBAAkB/U,QAAQ,CAAC0D,eAA3B,IAA8CsR,SAAS,CAACC,cAAV,GAA2B,CAAhG;SACKC,aAAL,GAAqBlO,OAAO,CAAC5H,MAAM,CAAC+V,YAAP,IAAuB/V,MAAM,CAACgW,cAA/B,CAA5B;;SAEKC,kBAAL;;IACA1Q,IAAI,CAACC,OAAL,CAAazE,OAAb,EAAsBuM,UAAtB,EAAgC,IAAhC;;;;;;;SAeF4I,OAAA,gBAAO;QACD,CAAC,KAAKd,UAAV,EAAsB;WACfe,MAAL,CAAYjD,SAAS,CAACC,IAAtB;;;;SAIJiD,kBAAA,2BAAkB;;;QAGZ,CAACxV,QAAQ,CAACyV,MAAV,IAAoBrS,SAAS,CAAC,KAAKmK,QAAN,CAAjC,EAAkD;WAC3C+H,IAAL;;;;SAIJlJ,OAAA,gBAAO;QACD,CAAC,KAAKoI,UAAV,EAAsB;WACfe,MAAL,CAAYjD,SAAS,CAACE,IAAtB;;;;SAIJN,QAAA,eAAMjK,KAAN,EAAa;QACP,CAACA,KAAL,EAAY;WACLsM,SAAL,GAAiB,IAAjB;;;QAGE7I,cAAc,CAACpG,OAAf,CAAuBuH,UAAQ,CAAC+G,SAAhC,EAA2C,KAAKrG,QAAhD,CAAJ,EAA+D;MAC7DrM,oBAAoB,CAAC,KAAKqM,QAAN,CAApB;WACKmI,KAAL,CAAW,IAAX;;;IAGFC,aAAa,CAAC,KAAKtB,SAAN,CAAb;SACKA,SAAL,GAAiB,IAAjB;;;SAGFqB,QAAA,eAAMzN,KAAN,EAAa;QACP,CAACA,KAAL,EAAY;WACLsM,SAAL,GAAiB,KAAjB;;;QAGE,KAAKF,SAAT,EAAoB;MAClBsB,aAAa,CAAC,KAAKtB,SAAN,CAAb;WACKA,SAAL,GAAiB,IAAjB;;;QAGE,KAAKO,OAAL,IAAgB,KAAKA,OAAL,CAAa7C,QAA7B,IAAyC,CAAC,KAAKwC,SAAnD,EAA8D;WACvDF,SAAL,GAAiBuB,WAAW,CAC1B,CAAC5V,QAAQ,CAAC6V,eAAT,GAA2B,KAAKL,eAAhC,GAAkD,KAAKF,IAAxD,EAA8DQ,IAA9D,CAAmE,IAAnE,CAD0B,EAE1B,KAAKlB,OAAL,CAAa7C,QAFa,CAA5B;;;;SAOJgE,KAAA,YAAGC,KAAH,EAAU;;;SACH1B,cAAL,GAAsB5I,cAAc,CAACpG,OAAf,CAAuBuH,UAAQ,CAAC6G,WAAhC,EAA6C,KAAKnG,QAAlD,CAAtB;;QACM0I,WAAW,GAAG,KAAKC,aAAL,CAAmB,KAAK5B,cAAxB,CAApB;;QAEI0B,KAAK,GAAG,KAAK5B,MAAL,CAAYlL,MAAZ,GAAqB,CAA7B,IAAkC8M,KAAK,GAAG,CAA9C,EAAiD;;;;QAI7C,KAAKxB,UAAT,EAAqB;MACnB7L,YAAY,CAAC+B,GAAb,CAAiB,KAAK6C,QAAtB,EAAgClH,OAAK,CAACuM,IAAtC,EAA4C;eAAM,KAAI,CAACmD,EAAL,CAAQC,KAAR,CAAN;OAA5C;;;;QAIEC,WAAW,KAAKD,KAApB,EAA2B;WACpB9D,KAAL;WACKwD,KAAL;;;;QAIIS,SAAS,GAAGH,KAAK,GAAGC,WAAR,GAChB3D,SAAS,CAACC,IADM,GAEhBD,SAAS,CAACE,IAFZ;;SAIK+C,MAAL,CAAYY,SAAZ,EAAuB,KAAK/B,MAAL,CAAY4B,KAAZ,CAAvB;;;SAGFlI,UAAA,mBAAU;IACRnF,YAAY,CAACC,GAAb,CAAiB,KAAK2E,QAAtB,EAAgCZ,WAAhC;IACAhI,IAAI,CAACI,UAAL,CAAgB,KAAKwI,QAArB,EAA+Bb,UAA/B;SAEK0H,MAAL,GAAc,IAAd;SACKQ,OAAL,GAAe,IAAf;SACKrH,QAAL,GAAgB,IAAhB;SACK8G,SAAL,GAAiB,IAAjB;SACKE,SAAL,GAAiB,IAAjB;SACKC,UAAL,GAAkB,IAAlB;SACKF,cAAL,GAAsB,IAAtB;SACKQ,kBAAL,GAA0B,IAA1B;;;;SAKFD,aAAA,oBAAWzS,MAAX,EAAmB;IACjBA,MAAM,qBACD0P,OADC,EAED1P,MAFC,CAAN;IAIAF,eAAe,CAACsK,MAAD,EAAOpK,MAAP,EAAeiQ,WAAf,CAAf;WACOjQ,MAAP;;;SAGFgU,eAAA,wBAAe;QACPC,SAAS,GAAGvW,IAAI,CAACwW,GAAL,CAAS,KAAK3B,WAAd,CAAlB;;QAEI0B,SAAS,IAAIxE,eAAjB,EAAkC;;;;QAI5BsE,SAAS,GAAGE,SAAS,GAAG,KAAK1B,WAAnC;SAEKA,WAAL,GAAmB,CAAnB,CATa;;QAYTwB,SAAS,GAAG,CAAhB,EAAmB;WACZ/J,IAAL;KAbW;;;QAiBT+J,SAAS,GAAG,CAAhB,EAAmB;WACZb,IAAL;;;;SAIJD,qBAAA,8BAAqB;;;QACf,KAAKT,OAAL,CAAa5C,QAAjB,EAA2B;MACzBrJ,YAAY,CACT8B,EADH,CACM,KAAK8C,QADX,EACqBlH,OAAK,CAACwM,OAD3B,EACoC,UAAA5K,KAAK;eAAI,MAAI,CAACsO,QAAL,CAActO,KAAd,CAAJ;OADzC;;;QAIE,KAAK2M,OAAL,CAAa1C,KAAb,KAAuB,OAA3B,EAAoC;MAClCvJ,YAAY,CACT8B,EADH,CACM,KAAK8C,QADX,EACqBlH,OAAK,CAACyM,UAD3B,EACuC,UAAA7K,KAAK;eAAI,MAAI,CAACiK,KAAL,CAAWjK,KAAX,CAAJ;OAD5C;MAEAU,YAAY,CACT8B,EADH,CACM,KAAK8C,QADX,EACqBlH,OAAK,CAAC0M,UAD3B,EACuC,UAAA9K,KAAK;eAAI,MAAI,CAACyN,KAAL,CAAWzN,KAAX,CAAJ;OAD5C;;;QAIE,KAAK2M,OAAL,CAAaxC,KAAjB,EAAwB;WACjBoE,uBAAL;;;;SAIJA,0BAAA,mCAA0B;;;QACpB,CAAC,KAAKzB,eAAV,EAA2B;;;;QAIrB0B,KAAK,GAAG,SAARA,KAAQ,CAAAxO,KAAK,EAAI;UACjB,MAAI,CAACiN,aAAL,IAAsBlB,WAAW,CAAC/L,KAAK,CAACyO,WAAN,CAAkB1T,WAAlB,EAAD,CAArC,EAAwE;QACtE,MAAI,CAAC0R,WAAL,GAAmBzM,KAAK,CAAC0O,OAAzB;OADF,MAEO,IAAI,CAAC,MAAI,CAACzB,aAAV,EAAyB;QAC9B,MAAI,CAACR,WAAL,GAAmBzM,KAAK,CAAC2O,OAAN,CAAc,CAAd,EAAiBD,OAApC;;KAJJ;;QAQME,IAAI,GAAG,SAAPA,IAAO,CAAA5O,KAAK,EAAI;;UAEhBA,KAAK,CAAC2O,OAAN,IAAiB3O,KAAK,CAAC2O,OAAN,CAAc1N,MAAd,GAAuB,CAA5C,EAA+C;QAC7C,MAAI,CAACyL,WAAL,GAAmB,CAAnB;OADF,MAEO;QACL,MAAI,CAACA,WAAL,GAAmB1M,KAAK,CAAC2O,OAAN,CAAc,CAAd,EAAiBD,OAAjB,GAA2B,MAAI,CAACjC,WAAnD;;KALJ;;QASMoC,GAAG,GAAG,SAANA,GAAM,CAAA7O,KAAK,EAAI;UACf,MAAI,CAACiN,aAAL,IAAsBlB,WAAW,CAAC/L,KAAK,CAACyO,WAAN,CAAkB1T,WAAlB,EAAD,CAArC,EAAwE;QACtE,MAAI,CAAC2R,WAAL,GAAmB1M,KAAK,CAAC0O,OAAN,GAAgB,MAAI,CAACjC,WAAxC;;;MAGF,MAAI,CAAC0B,YAAL;;UACI,MAAI,CAACxB,OAAL,CAAa1C,KAAb,KAAuB,OAA3B,EAAoC;;;;;;;;QASlC,MAAI,CAACA,KAAL;;YACI,MAAI,CAACuC,YAAT,EAAuB;UACrBsC,YAAY,CAAC,MAAI,CAACtC,YAAN,CAAZ;;;QAGF,MAAI,CAACA,YAAL,GAAoBxS,UAAU,CAAC,UAAAgG,KAAK;iBAAI,MAAI,CAACyN,KAAL,CAAWzN,KAAX,CAAJ;SAAN,EAA6B2J,sBAAsB,GAAG,MAAI,CAACgD,OAAL,CAAa7C,QAAnE,CAA9B;;KApBJ;;IAwBA9O,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAAoByH,UAAQ,CAAC8G,QAA7B,EAAuC,KAAKpG,QAA5C,CAAD,CAAT,CAAiE/K,OAAjE,CAAyE,UAAAwU,OAAO,EAAI;MAClFrO,YAAY,CAAC8B,EAAb,CAAgBuM,OAAhB,EAAyB3Q,OAAK,CAACgN,UAA/B,EAA2C,UAAApN,CAAC;eAAIA,CAAC,CAACC,cAAF,EAAJ;OAA5C;KADF;;QAII,KAAKgP,aAAT,EAAwB;MACtBvM,YAAY,CAAC8B,EAAb,CAAgB,KAAK8C,QAArB,EAA+BlH,OAAK,CAAC8M,WAArC,EAAkD,UAAAlL,KAAK;eAAIwO,KAAK,CAACxO,KAAD,CAAT;OAAvD;MACAU,YAAY,CAAC8B,EAAb,CAAgB,KAAK8C,QAArB,EAA+BlH,OAAK,CAAC+M,SAArC,EAAgD,UAAAnL,KAAK;eAAI6O,GAAG,CAAC7O,KAAD,CAAP;OAArD;;WAEKsF,QAAL,CAAcS,SAAd,CAAwBgC,GAAxB,CAA4B9C,WAAS,CAACuG,aAAtC;KAJF,MAKO;MACL9K,YAAY,CAAC8B,EAAb,CAAgB,KAAK8C,QAArB,EAA+BlH,OAAK,CAAC2M,UAArC,EAAiD,UAAA/K,KAAK;eAAIwO,KAAK,CAACxO,KAAD,CAAT;OAAtD;MACAU,YAAY,CAAC8B,EAAb,CAAgB,KAAK8C,QAArB,EAA+BlH,OAAK,CAAC4M,SAArC,EAAgD,UAAAhL,KAAK;eAAI4O,IAAI,CAAC5O,KAAD,CAAR;OAArD;MACAU,YAAY,CAAC8B,EAAb,CAAgB,KAAK8C,QAArB,EAA+BlH,OAAK,CAAC6M,QAArC,EAA+C,UAAAjL,KAAK;eAAI6O,GAAG,CAAC7O,KAAD,CAAP;OAApD;;;;SAIJsO,WAAA,kBAAStO,KAAT,EAAgB;QACV,kBAAkBnF,IAAlB,CAAuBmF,KAAK,CAACe,MAAN,CAAaiO,OAApC,CAAJ,EAAkD;;;;YAI1ChP,KAAK,CAACC,KAAd;WACOwJ,kBAAL;QACEzJ,KAAK,CAAC/B,cAAN;aACKkG,IAAL;;;WAEGuF,mBAAL;QACE1J,KAAK,CAAC/B,cAAN;aACKoP,IAAL;;;;;;;SAMNY,gBAAA,uBAAc/V,OAAd,EAAuB;SAChBiU,MAAL,GAAcjU,OAAO,IAAIA,OAAO,CAACmD,UAAnB,GACZL,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAAoByH,UAAQ,CAAC2G,IAA7B,EAAmCrT,OAAO,CAACmD,UAA3C,CAAD,CADG,GAEZ,EAFF;WAIO,KAAK8Q,MAAL,CAAYpK,OAAZ,CAAoB7J,OAApB,CAAP;;;SAGF+W,sBAAA,6BAAoBf,SAApB,EAA+BxG,aAA/B,EAA8C;QACtCwH,eAAe,GAAGhB,SAAS,KAAK7D,SAAS,CAACC,IAAhD;QACM6E,eAAe,GAAGjB,SAAS,KAAK7D,SAAS,CAACE,IAAhD;;QACMyD,WAAW,GAAG,KAAKC,aAAL,CAAmBvG,aAAnB,CAApB;;QACM0H,aAAa,GAAG,KAAKjD,MAAL,CAAYlL,MAAZ,GAAqB,CAA3C;QACMoO,aAAa,GAAGF,eAAe,IAAInB,WAAW,KAAK,CAAnC,IACEkB,eAAe,IAAIlB,WAAW,KAAKoB,aAD3D;;QAGIC,aAAa,IAAI,CAAC,KAAK1C,OAAL,CAAazC,IAAnC,EAAyC;aAChCxC,aAAP;;;QAGI4H,KAAK,GAAGpB,SAAS,KAAK7D,SAAS,CAACE,IAAxB,GAA+B,CAAC,CAAhC,GAAoC,CAAlD;QACMgF,SAAS,GAAG,CAACvB,WAAW,GAAGsB,KAAf,IAAwB,KAAKnD,MAAL,CAAYlL,MAAtD;WAEOsO,SAAS,KAAK,CAAC,CAAf,GACL,KAAKpD,MAAL,CAAY,KAAKA,MAAL,CAAYlL,MAAZ,GAAqB,CAAjC,CADK,GAEL,KAAKkL,MAAL,CAAYoD,SAAZ,CAFF;;;SAKFC,qBAAA,4BAAmBC,aAAnB,EAAkCC,kBAAlC,EAAsD;QAC9CC,WAAW,GAAG,KAAK1B,aAAL,CAAmBwB,aAAnB,CAApB;;QACMG,SAAS,GAAG,KAAK3B,aAAL,CAAmBxK,cAAc,CAACpG,OAAf,CAAuBuH,UAAQ,CAAC6G,WAAhC,EAA6C,KAAKnG,QAAlD,CAAnB,CAAlB;;WAEO5E,YAAY,CAACsC,OAAb,CAAqB,KAAKsC,QAA1B,EAAoClH,OAAK,CAACsM,KAA1C,EAAiD;MACtD+E,aAAa,EAAbA,aADsD;MAEtDvB,SAAS,EAAEwB,kBAF2C;MAGtDG,IAAI,EAAED,SAHgD;MAItD9B,EAAE,EAAE6B;KAJC,CAAP;;;SAQFG,6BAAA,oCAA2B5X,OAA3B,EAAoC;QAC9B,KAAK2U,kBAAT,EAA6B;UACrBkD,UAAU,GAAGtM,cAAc,CAACtG,IAAf,CAAoByH,UAAQ,CAACgC,MAA7B,EAAqC,KAAKiG,kBAA1C,CAAnB;;WACK,IAAI7L,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG+O,UAAU,CAAC9O,MAA/B,EAAuCD,CAAC,EAAxC,EAA4C;QAC1C+O,UAAU,CAAC/O,CAAD,CAAV,CAAc+E,SAAd,CAAwBC,MAAxB,CAA+Bf,WAAS,CAAC2B,MAAzC;;;UAGIoJ,aAAa,GAAG,KAAKnD,kBAAL,CAAwBlJ,QAAxB,CACpB,KAAKsK,aAAL,CAAmB/V,OAAnB,CADoB,CAAtB;;UAII8X,aAAJ,EAAmB;QACjBA,aAAa,CAACjK,SAAd,CAAwBgC,GAAxB,CAA4B9C,WAAS,CAAC2B,MAAtC;;;;;SAKN0G,SAAA,gBAAOY,SAAP,EAAkBhW,OAAlB,EAA2B;;;QACnBwP,aAAa,GAAGjE,cAAc,CAACpG,OAAf,CAAuBuH,UAAQ,CAAC6G,WAAhC,EAA6C,KAAKnG,QAAlD,CAAtB;;QACM2K,kBAAkB,GAAG,KAAKhC,aAAL,CAAmBvG,aAAnB,CAA3B;;QACMwI,WAAW,GAAGhY,OAAO,IAAIwP,aAAa,IAC1C,KAAKuH,mBAAL,CAAyBf,SAAzB,EAAoCxG,aAApC,CADF;;QAGMyI,gBAAgB,GAAG,KAAKlC,aAAL,CAAmBiC,WAAnB,CAAzB;;QACME,SAAS,GAAGrR,OAAO,CAAC,KAAKqN,SAAN,CAAzB;QAEIiE,oBAAJ;QACIC,cAAJ;QACIZ,kBAAJ;;QAEIxB,SAAS,KAAK7D,SAAS,CAACC,IAA5B,EAAkC;MAChC+F,oBAAoB,GAAGpL,WAAS,CAACuF,IAAjC;MACA8F,cAAc,GAAGrL,WAAS,CAACqF,IAA3B;MACAoF,kBAAkB,GAAGrF,SAAS,CAACG,IAA/B;KAHF,MAIO;MACL6F,oBAAoB,GAAGpL,WAAS,CAACwF,KAAjC;MACA6F,cAAc,GAAGrL,WAAS,CAACsF,IAA3B;MACAmF,kBAAkB,GAAGrF,SAAS,CAACI,KAA/B;;;QAGEyF,WAAW,IAAIA,WAAW,CAACnK,SAAZ,CAAsBE,QAAtB,CAA+BhB,WAAS,CAAC2B,MAAzC,CAAnB,EAAqE;WAC9D2F,UAAL,GAAkB,KAAlB;;;;QAIIgE,UAAU,GAAG,KAAKf,kBAAL,CAAwBU,WAAxB,EAAqCR,kBAArC,CAAnB;;QACIa,UAAU,CAACrS,gBAAf,EAAiC;;;;QAI7B,CAACwJ,aAAD,IAAkB,CAACwI,WAAvB,EAAoC;;;;;SAK/B3D,UAAL,GAAkB,IAAlB;;QAEI6D,SAAJ,EAAe;WACRnG,KAAL;;;SAGG6F,0BAAL,CAAgCI,WAAhC;;QAEI,KAAK5K,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAACyF,KAA3C,CAAJ,EAAuD;MACrDwF,WAAW,CAACnK,SAAZ,CAAsBgC,GAAtB,CAA0BuI,cAA1B;MAEAvU,MAAM,CAACmU,WAAD,CAAN;MAEAxI,aAAa,CAAC3B,SAAd,CAAwBgC,GAAxB,CAA4BsI,oBAA5B;MACAH,WAAW,CAACnK,SAAZ,CAAsBgC,GAAtB,CAA0BsI,oBAA1B;UAEMG,mBAAmB,GAAGC,QAAQ,CAACP,WAAW,CAAC9X,YAAZ,CAAyB,eAAzB,CAAD,EAA4C,EAA5C,CAApC;;UACIoY,mBAAJ,EAAyB;aAClB7D,OAAL,CAAa+D,eAAb,GAA+B,KAAK/D,OAAL,CAAa+D,eAAb,IAAgC,KAAK/D,OAAL,CAAa7C,QAA5E;aACK6C,OAAL,CAAa7C,QAAb,GAAwB0G,mBAAxB;OAFF,MAGO;aACA7D,OAAL,CAAa7C,QAAb,GAAwB,KAAK6C,OAAL,CAAa+D,eAAb,IAAgC,KAAK/D,OAAL,CAAa7C,QAArE;;;UAGInR,kBAAkB,GAAGF,gCAAgC,CAACiP,aAAD,CAA3D;MAEAhH,YAAY,CACT+B,GADH,CACOiF,aADP,EACsBxQ,cADtB,EACsC,YAAM;QACxCgZ,WAAW,CAACnK,SAAZ,CAAsBC,MAAtB,CAA6BqK,oBAA7B;QACAH,WAAW,CAACnK,SAAZ,CAAsBC,MAAtB,CAA6BsK,cAA7B;QACAJ,WAAW,CAACnK,SAAZ,CAAsBgC,GAAtB,CAA0B9C,WAAS,CAAC2B,MAApC;QAEAc,aAAa,CAAC3B,SAAd,CAAwBC,MAAxB,CAA+Bf,WAAS,CAAC2B,MAAzC;QACAc,aAAa,CAAC3B,SAAd,CAAwBC,MAAxB,CAA+BsK,cAA/B;QACA5I,aAAa,CAAC3B,SAAd,CAAwBC,MAAxB,CAA+BqK,oBAA/B;QAEA,MAAI,CAAC9D,UAAL,GAAkB,KAAlB;QAEAvS,UAAU,CAAC,YAAM;UACf0G,YAAY,CAACsC,OAAb,CAAqB,MAAI,CAACsC,QAA1B,EAAoClH,OAAK,CAACuM,IAA1C,EAAgD;YAC9C8E,aAAa,EAAES,WAD+B;YAE9ChC,SAAS,EAAEwB,kBAFmC;YAG9CG,IAAI,EAAEI,kBAHwC;YAI9CnC,EAAE,EAAEqC;WAJN;SADQ,EAOP,CAPO,CAAV;OAZJ;MAsBA3W,oBAAoB,CAACkO,aAAD,EAAgB/O,kBAAhB,CAApB;KAxCF,MAyCO;MACL+O,aAAa,CAAC3B,SAAd,CAAwBC,MAAxB,CAA+Bf,WAAS,CAAC2B,MAAzC;MACAsJ,WAAW,CAACnK,SAAZ,CAAsBgC,GAAtB,CAA0B9C,WAAS,CAAC2B,MAApC;WAEK2F,UAAL,GAAkB,KAAlB;MACA7L,YAAY,CAACsC,OAAb,CAAqB,KAAKsC,QAA1B,EAAoClH,OAAK,CAACuM,IAA1C,EAAgD;QAC9C8E,aAAa,EAAES,WAD+B;QAE9ChC,SAAS,EAAEwB,kBAFmC;QAG9CG,IAAI,EAAEI,kBAHwC;QAI9CnC,EAAE,EAAEqC;OAJN;;;QAQEC,SAAJ,EAAe;WACR3C,KAAL;;;;;WAMGkD,qBAAP,4BAA0BzY,OAA1B,EAAmCiC,MAAnC,EAA2C;QACrCmC,IAAI,GAAGI,IAAI,CAACG,OAAL,CAAa3E,OAAb,EAAsBuM,UAAtB,CAAX;;QACIkI,OAAO,qBACN9C,OADM,EAENxB,WAAW,CAACG,iBAAZ,CAA8BtQ,OAA9B,CAFM,CAAX;;QAKI,OAAOiC,MAAP,KAAkB,QAAtB,EAAgC;MAC9BwS,OAAO,qBACFA,OADE,EAEFxS,MAFE,CAAP;;;QAMIyW,MAAM,GAAG,OAAOzW,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsCwS,OAAO,CAAC3C,KAA7D;;QAEI,CAAC1N,IAAL,EAAW;MACTA,IAAI,GAAG,IAAI4P,QAAJ,CAAahU,OAAb,EAAsByU,OAAtB,CAAP;;;QAGE,OAAOxS,MAAP,KAAkB,QAAtB,EAAgC;MAC9BmC,IAAI,CAACwR,EAAL,CAAQ3T,MAAR;KADF,MAEO,IAAI,OAAOyW,MAAP,KAAkB,QAAtB,EAAgC;UACjC,OAAOtU,IAAI,CAACsU,MAAD,CAAX,KAAwB,WAA5B,EAAyC;cACjC,IAAIC,SAAJ,wBAAkCD,MAAlC,QAAN;;;MAGFtU,IAAI,CAACsU,MAAD,CAAJ;KALK,MAMA,IAAIjE,OAAO,CAAC7C,QAAR,IAAoB6C,OAAO,CAACmE,IAAhC,EAAsC;MAC3CxU,IAAI,CAAC2N,KAAL;MACA3N,IAAI,CAACmR,KAAL;;;;WAIGrH,mBAAP,0BAAwBjM,MAAxB,EAAgC;WACvB,KAAKkM,IAAL,CAAU,YAAY;MAC3B6F,QAAQ,CAACyE,kBAAT,CAA4B,IAA5B,EAAkCxW,MAAlC;KADK,CAAP;;;WAKK4W,uBAAP,8BAA4B/Q,KAA5B,EAAmC;QAC3B7H,QAAQ,GAAGF,sBAAsB,CAAC,IAAD,CAAvC;;QAEI,CAACE,QAAL,EAAe;;;;QAIT4I,MAAM,GAAG0C,cAAc,CAACpG,OAAf,CAAuBlF,QAAvB,CAAf;;QAEI,CAAC4I,MAAD,IAAW,CAACA,MAAM,CAACgF,SAAP,CAAiBE,QAAjB,CAA0BhB,WAAS,CAACqG,QAApC,CAAhB,EAA+D;;;;QAIzDnR,MAAM,qBACPkO,WAAW,CAACG,iBAAZ,CAA8BzH,MAA9B,CADO,EAEPsH,WAAW,CAACG,iBAAZ,CAA8B,IAA9B,CAFO,CAAZ;;QAIMwI,UAAU,GAAG,KAAK5Y,YAAL,CAAkB,eAAlB,CAAnB;;QAEI4Y,UAAJ,EAAgB;MACd7W,MAAM,CAAC2P,QAAP,GAAkB,KAAlB;;;IAGFoC,QAAQ,CAACyE,kBAAT,CAA4B5P,MAA5B,EAAoC5G,MAApC;;QAEI6W,UAAJ,EAAgB;MACdtU,IAAI,CAACG,OAAL,CAAakE,MAAb,EAAqB0D,UAArB,EAA+BqJ,EAA/B,CAAkCkD,UAAlC;;;IAGFhR,KAAK,CAAC/B,cAAN;;;WAGKuI,eAAP,sBAAoBtO,OAApB,EAA6B;WACpBwE,IAAI,CAACG,OAAL,CAAa3E,OAAb,EAAsBuM,UAAtB,CAAP;;;;;wBAtdmB;aACZD,SAAP;;;;wBAGmB;aACZqF,OAAP;;;;;;;;;;;;;AA2dJnJ,YAAY,CACT8B,EADH,CACMzK,QADN,EACgBqG,OAAK,CAAC4G,cADtB,EACsCJ,UAAQ,CAACiH,UAD/C,EAC2DK,QAAQ,CAAC6E,oBADpE;AAGArQ,YAAY,CAAC8B,EAAb,CAAgBrL,MAAhB,EAAwBiH,OAAK,CAACiN,aAA9B,EAA6C,YAAM;MAC3C4F,SAAS,GAAGjW,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAAoByH,UAAQ,CAACkH,SAA7B,CAAD,CAA3B;;OACK,IAAI9K,CAAC,GAAG,CAAR,EAAWM,GAAG,GAAG2P,SAAS,CAAChQ,MAAhC,EAAwCD,CAAC,GAAGM,GAA5C,EAAiDN,CAAC,EAAlD,EAAsD;IACpDkL,QAAQ,CAACyE,kBAAT,CAA4BM,SAAS,CAACjQ,CAAD,CAArC,EAA0CtE,IAAI,CAACG,OAAL,CAAaoU,SAAS,CAACjQ,CAAD,CAAtB,EAA2ByD,UAA3B,CAA1C;;CAHJ;;;;;;;;AAcA,IAAI,OAAOrB,MAAP,KAAa,WAAjB,EAA8B;MACtBqD,oBAAkB,GAAGrD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,CAA3B;EACAnB,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAa2H,QAAQ,CAAC9F,gBAAtB;EACAhD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWmC,WAAX,GAAyBwF,QAAzB;;EACA9I,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWoC,UAAX,GAAwB,YAAM;IAC5BvD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAakC,oBAAb;WACOyF,QAAQ,CAAC9F,gBAAhB;GAFF;;;ACvmBF;;;;;;AAMA,IAAM7B,MAAI,GAAG,UAAb;AACA,IAAMC,SAAO,GAAG,OAAhB;AACA,IAAMC,UAAQ,GAAG,aAAjB;AACA,IAAMC,WAAS,SAAOD,UAAtB;AACA,IAAME,cAAY,GAAG,WAArB;AAEA,IAAMkF,SAAO,GAAG;EACdxC,MAAM,EAAE,IADM;EAEdvB,MAAM,EAAE;CAFV;AAKA,IAAMsE,aAAW,GAAG;EAClB/C,MAAM,EAAE,SADU;EAElBvB,MAAM,EAAE;CAFV;AAKA,IAAM1H,OAAK,GAAG;EACZgH,IAAI,WAASV,WADD;EAEZwM,KAAK,YAAUxM,WAFH;EAGZyM,IAAI,WAASzM,WAHD;EAIZ0M,MAAM,aAAW1M,WAJL;EAKZM,cAAc,YAAUN,WAAV,GAAsBC;CALtC;AAQA,IAAMM,WAAS,GAAG;EAChBG,IAAI,EAAE,MADU;EAEhBiM,QAAQ,EAAE,UAFM;EAGhBC,UAAU,EAAE,YAHI;EAIhBC,SAAS,EAAE;CAJb;AAOA,IAAMC,SAAS,GAAG;EAChBC,KAAK,EAAE,OADS;EAEhBC,MAAM,EAAE;CAFV;AAKA,IAAM9M,UAAQ,GAAG;EACf+M,OAAO,EAAE,oBADM;EAEf3K,WAAW,EAAE;;;;;;;CAFf;;IAWM4K;;;oBACQ1Z,OAAZ,EAAqBiC,MAArB,EAA6B;SACtB0X,gBAAL,GAAwB,KAAxB;SACKvM,QAAL,GAAgBpN,OAAhB;SACKyU,OAAL,GAAe,KAAKC,UAAL,CAAgBzS,MAAhB,CAAf;SACK2X,aAAL,GAAqB9W,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAC7B,wCAAmCjF,OAAO,CAACiE,EAA3C,4DAC0CjE,OAAO,CAACiE,EADlD,SAD6B,CAAD,CAA9B;QAKM4V,UAAU,GAAG/W,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAAoByH,UAAQ,CAACoC,WAA7B,CAAD,CAA5B;;SACK,IAAIhG,CAAC,GAAG,CAAR,EAAWM,GAAG,GAAGyQ,UAAU,CAAC9Q,MAAjC,EAAyCD,CAAC,GAAGM,GAA7C,EAAkDN,CAAC,EAAnD,EAAuD;UAC/CgR,IAAI,GAAGD,UAAU,CAAC/Q,CAAD,CAAvB;UACM7I,QAAQ,GAAGF,sBAAsB,CAAC+Z,IAAD,CAAvC;UACMC,aAAa,GAAGjX,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAAoBhF,QAApB,CAAD,CAAT,CACnByL,MADmB,CACZ,UAAAsO,SAAS;eAAIA,SAAS,KAAKha,OAAlB;OADG,CAAtB;;UAGIC,QAAQ,KAAK,IAAb,IAAqB8Z,aAAa,CAAChR,MAAvC,EAA+C;aACxCkR,SAAL,GAAiBha,QAAjB;;aACK2Z,aAAL,CAAmB5N,IAAnB,CAAwB8N,IAAxB;;;;SAICI,OAAL,GAAe,KAAKzF,OAAL,CAAa7G,MAAb,GAAsB,KAAKuM,UAAL,EAAtB,GAA0C,IAAzD;;QAEI,CAAC,KAAK1F,OAAL,CAAa7G,MAAlB,EAA0B;WACnBwM,yBAAL,CAA+B,KAAKhN,QAApC,EAA8C,KAAKwM,aAAnD;;;QAGE,KAAKnF,OAAL,CAAatF,MAAjB,EAAyB;WAClBA,MAAL;;;IAGF3K,IAAI,CAACC,OAAL,CAAazE,OAAb,EAAsBuM,UAAtB,EAAgC,IAAhC;;;;;;;SAeF4C,SAAA,kBAAS;QACH,KAAK/B,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAACG,IAA3C,CAAJ,EAAsD;WAC/CmN,IAAL;KADF,MAEO;WACAC,IAAL;;;;SAIJA,OAAA,gBAAO;;;QACD,KAAKX,gBAAL,IACF,KAAKvM,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAACG,IAA3C,CADF,EACoD;;;;QAIhDqN,OAAJ;QACIC,WAAJ;;QAEI,KAAKN,OAAT,EAAkB;MAChBK,OAAO,GAAGzX,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAAoByH,UAAQ,CAAC+M,OAA7B,EAAsC,KAAKS,OAA3C,CAAD,CAAT,CACPxO,MADO,CACA,UAAAoO,IAAI,EAAI;YACV,OAAO,KAAI,CAACrF,OAAL,CAAa7G,MAApB,KAA+B,QAAnC,EAA6C;iBACpCkM,IAAI,CAAC5Z,YAAL,CAAkB,aAAlB,MAAqC,KAAI,CAACuU,OAAL,CAAa7G,MAAzD;;;eAGKkM,IAAI,CAACjM,SAAL,CAAeE,QAAf,CAAwBhB,WAAS,CAACoM,QAAlC,CAAP;OANM,CAAV;;UASIoB,OAAO,CAACxR,MAAR,KAAmB,CAAvB,EAA0B;QACxBwR,OAAO,GAAG,IAAV;;;;QAIEE,SAAS,GAAGlP,cAAc,CAACpG,OAAf,CAAuB,KAAK8U,SAA5B,CAAlB;;QACIM,OAAJ,EAAa;UACLG,cAAc,GAAGH,OAAO,CAAC7O,MAAR,CAAe,UAAAoO,IAAI;eAAIW,SAAS,KAAKX,IAAlB;OAAnB,CAAvB;MACAU,WAAW,GAAGE,cAAc,CAAC,CAAD,CAAd,GAAoBlW,IAAI,CAACG,OAAL,CAAa+V,cAAc,CAAC,CAAD,CAA3B,EAAgCnO,UAAhC,CAApB,GAAgE,IAA9E;;UAEIiO,WAAW,IAAIA,WAAW,CAACb,gBAA/B,EAAiD;;;;;QAK7CgB,UAAU,GAAGnS,YAAY,CAACsC,OAAb,CAAqB,KAAKsC,QAA1B,EAAoClH,OAAK,CAACgH,IAA1C,CAAnB;;QACIyN,UAAU,CAAC3U,gBAAf,EAAiC;;;;QAI7BuU,OAAJ,EAAa;MACXA,OAAO,CAAClY,OAAR,CAAgB,UAAAuY,UAAU,EAAI;YACxBH,SAAS,KAAKG,UAAlB,EAA8B;UAC5BlB,QAAQ,CAACmB,kBAAT,CAA4BD,UAA5B,EAAwC,MAAxC;;;YAGE,CAACJ,WAAL,EAAkB;UAChBhW,IAAI,CAACC,OAAL,CAAamW,UAAb,EAAyBrO,UAAzB,EAAmC,IAAnC;;OANJ;;;QAWIuO,SAAS,GAAG,KAAKC,aAAL,EAAlB;;SAEK3N,QAAL,CAAcS,SAAd,CAAwBC,MAAxB,CAA+Bf,WAAS,CAACoM,QAAzC;;SACK/L,QAAL,CAAcS,SAAd,CAAwBgC,GAAxB,CAA4B9C,WAAS,CAACqM,UAAtC;;SAEKhM,QAAL,CAAclK,KAAd,CAAoB4X,SAApB,IAAiC,CAAjC;;QAEI,KAAKlB,aAAL,CAAmB7Q,MAAvB,EAA+B;WACxB6Q,aAAL,CAAmBvX,OAAnB,CAA2B,UAAArC,OAAO,EAAI;QACpCA,OAAO,CAAC6N,SAAR,CAAkBC,MAAlB,CAAyBf,WAAS,CAACsM,SAAnC;QACArZ,OAAO,CAAC2P,YAAR,CAAqB,eAArB,EAAsC,IAAtC;OAFF;;;SAMGqL,gBAAL,CAAsB,IAAtB;;QAEMC,QAAQ,GAAG,SAAXA,QAAW,GAAM;MACrB,KAAI,CAAC7N,QAAL,CAAcS,SAAd,CAAwBC,MAAxB,CAA+Bf,WAAS,CAACqM,UAAzC;;MACA,KAAI,CAAChM,QAAL,CAAcS,SAAd,CAAwBgC,GAAxB,CAA4B9C,WAAS,CAACoM,QAAtC;;MACA,KAAI,CAAC/L,QAAL,CAAcS,SAAd,CAAwBgC,GAAxB,CAA4B9C,WAAS,CAACG,IAAtC;;MAEA,KAAI,CAACE,QAAL,CAAclK,KAAd,CAAoB4X,SAApB,IAAiC,EAAjC;;MAEA,KAAI,CAACE,gBAAL,CAAsB,KAAtB;;MAEAxS,YAAY,CAACsC,OAAb,CAAqB,KAAI,CAACsC,QAA1B,EAAoClH,OAAK,CAAC8S,KAA1C;KATF;;QAYMkC,oBAAoB,GAAGJ,SAAS,CAAC,CAAD,CAAT,CAAajY,WAAb,KAA6BiY,SAAS,CAAC9X,KAAV,CAAgB,CAAhB,CAA1D;QACMmY,UAAU,cAAYD,oBAA5B;QACMza,kBAAkB,GAAGF,gCAAgC,CAAC,KAAK6M,QAAN,CAA3D;IAEA5E,YAAY,CAAC+B,GAAb,CAAiB,KAAK6C,QAAtB,EAAgCpO,cAAhC,EAAgDic,QAAhD;IAEA3Z,oBAAoB,CAAC,KAAK8L,QAAN,EAAgB3M,kBAAhB,CAApB;SACK2M,QAAL,CAAclK,KAAd,CAAoB4X,SAApB,IAAoC,KAAK1N,QAAL,CAAc+N,UAAd,CAApC;;;SAGFd,OAAA,gBAAO;;;QACD,KAAKV,gBAAL,IACF,CAAC,KAAKvM,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAACG,IAA3C,CADH,EACqD;;;;QAI/CyN,UAAU,GAAGnS,YAAY,CAACsC,OAAb,CAAqB,KAAKsC,QAA1B,EAAoClH,OAAK,CAAC+S,IAA1C,CAAnB;;QACI0B,UAAU,CAAC3U,gBAAf,EAAiC;;;;QAI3B8U,SAAS,GAAG,KAAKC,aAAL,EAAlB;;SAEK3N,QAAL,CAAclK,KAAd,CAAoB4X,SAApB,IAAoC,KAAK1N,QAAL,CAAcwD,qBAAd,GAAsCkK,SAAtC,CAApC;IAEAjX,MAAM,CAAC,KAAKuJ,QAAN,CAAN;;SAEKA,QAAL,CAAcS,SAAd,CAAwBgC,GAAxB,CAA4B9C,WAAS,CAACqM,UAAtC;;SACKhM,QAAL,CAAcS,SAAd,CAAwBC,MAAxB,CAA+Bf,WAAS,CAACoM,QAAzC;;SACK/L,QAAL,CAAcS,SAAd,CAAwBC,MAAxB,CAA+Bf,WAAS,CAACG,IAAzC;;QAEMkO,kBAAkB,GAAG,KAAKxB,aAAL,CAAmB7Q,MAA9C;;QACIqS,kBAAkB,GAAG,CAAzB,EAA4B;WACrB,IAAItS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGsS,kBAApB,EAAwCtS,CAAC,EAAzC,EAA6C;YACrCgC,OAAO,GAAG,KAAK8O,aAAL,CAAmB9Q,CAAnB,CAAhB;YACM7I,QAAQ,GAAGF,sBAAsB,CAAC+K,OAAD,CAAvC;;YAEI7K,QAAQ,KAAK,IAAjB,EAAuB;cACf6Z,IAAI,GAAGvO,cAAc,CAACpG,OAAf,CAAuBlF,QAAvB,CAAb;;cAEI,CAAC6Z,IAAI,CAACjM,SAAL,CAAeE,QAAf,CAAwBhB,WAAS,CAACG,IAAlC,CAAL,EAA8C;YAC5CpC,OAAO,CAAC+C,SAAR,CAAkBgC,GAAlB,CAAsB9C,WAAS,CAACsM,SAAhC;YACAvO,OAAO,CAAC6E,YAAR,CAAqB,eAArB,EAAsC,KAAtC;;;;;;SAMHqL,gBAAL,CAAsB,IAAtB;;QAEMC,QAAQ,GAAG,SAAXA,QAAW,GAAM;MACrB,MAAI,CAACD,gBAAL,CAAsB,KAAtB;;MACA,MAAI,CAAC5N,QAAL,CAAcS,SAAd,CAAwBC,MAAxB,CAA+Bf,WAAS,CAACqM,UAAzC;;MACA,MAAI,CAAChM,QAAL,CAAcS,SAAd,CAAwBgC,GAAxB,CAA4B9C,WAAS,CAACoM,QAAtC;;MACA3Q,YAAY,CAACsC,OAAb,CAAqB,MAAI,CAACsC,QAA1B,EAAoClH,OAAK,CAACgT,MAA1C;KAJF;;SAOK9L,QAAL,CAAclK,KAAd,CAAoB4X,SAApB,IAAiC,EAAjC;QACMra,kBAAkB,GAAGF,gCAAgC,CAAC,KAAK6M,QAAN,CAA3D;IAEA5E,YAAY,CAAC+B,GAAb,CAAiB,KAAK6C,QAAtB,EAAgCpO,cAAhC,EAAgDic,QAAhD;IACA3Z,oBAAoB,CAAC,KAAK8L,QAAN,EAAgB3M,kBAAhB,CAApB;;;SAGFua,mBAAA,0BAAiBK,eAAjB,EAAkC;SAC3B1B,gBAAL,GAAwB0B,eAAxB;;;SAGF1N,UAAA,mBAAU;IACRnJ,IAAI,CAACI,UAAL,CAAgB,KAAKwI,QAArB,EAA+Bb,UAA/B;SAEKkI,OAAL,GAAe,IAAf;SACKyF,OAAL,GAAe,IAAf;SACK9M,QAAL,GAAgB,IAAhB;SACKwM,aAAL,GAAqB,IAArB;SACKD,gBAAL,GAAwB,IAAxB;;;;SAKFjF,aAAA,oBAAWzS,MAAX,EAAmB;IACjBA,MAAM,qBACD0P,SADC,EAED1P,MAFC,CAAN;IAIAA,MAAM,CAACkN,MAAP,GAAgBtI,OAAO,CAAC5E,MAAM,CAACkN,MAAR,CAAvB,CALiB;;IAMjBpN,eAAe,CAACsK,MAAD,EAAOpK,MAAP,EAAeiQ,aAAf,CAAf;WACOjQ,MAAP;;;SAGF8Y,gBAAA,yBAAgB;QACRO,QAAQ,GAAG,KAAKlO,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiCuL,SAAS,CAACC,KAA3C,CAAjB;;WACO+B,QAAQ,GAAGhC,SAAS,CAACC,KAAb,GAAqBD,SAAS,CAACE,MAA9C;;;SAGFW,aAAA,sBAAa;;;QACLvM,MADK,GACM,KAAK6G,OADX,CACL7G,MADK;;QAGPxM,SAAS,CAACwM,MAAD,CAAb,EAAuB;;UAEjB,OAAOA,MAAM,CAAC2N,MAAd,KAAyB,WAAzB,IAAwC,OAAO3N,MAAM,CAAC,CAAD,CAAb,KAAqB,WAAjE,EAA8E;QAC5EA,MAAM,GAAGA,MAAM,CAAC,CAAD,CAAf;;KAHJ,MAKO;MACLA,MAAM,GAAGrC,cAAc,CAACpG,OAAf,CAAuByI,MAAvB,CAAT;;;QAGI3N,QAAQ,iDAA4C2N,MAA5C,QAAd;IAEA9K,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAAoBhF,QAApB,EAA8B2N,MAA9B,CAAD,CAAT,CACGvL,OADH,CACW,UAAArC,OAAO,EAAI;MAClB,MAAI,CAACoa,yBAAL,CACEV,QAAQ,CAAC8B,qBAAT,CAA+Bxb,OAA/B,CADF,EAEE,CAACA,OAAD,CAFF;KAFJ;WAQO4N,MAAP;;;SAGFwM,4BAAA,mCAA0Bpa,OAA1B,EAAmCyb,YAAnC,EAAiD;QAC3Czb,OAAJ,EAAa;UACL0b,MAAM,GAAG1b,OAAO,CAAC6N,SAAR,CAAkBE,QAAlB,CAA2BhB,WAAS,CAACG,IAArC,CAAf;;UAEIuO,YAAY,CAAC1S,MAAjB,EAAyB;QACvB0S,YAAY,CAACpZ,OAAb,CAAqB,UAAAyX,IAAI,EAAI;cACvB4B,MAAJ,EAAY;YACV5B,IAAI,CAACjM,SAAL,CAAeC,MAAf,CAAsBf,WAAS,CAACsM,SAAhC;WADF,MAEO;YACLS,IAAI,CAACjM,SAAL,CAAegC,GAAf,CAAmB9C,WAAS,CAACsM,SAA7B;;;UAGFS,IAAI,CAACnK,YAAL,CAAkB,eAAlB,EAAmC+L,MAAnC;SAPF;;;;;;WAeCF,wBAAP,+BAA6Bxb,OAA7B,EAAsC;QAC9BC,QAAQ,GAAGF,sBAAsB,CAACC,OAAD,CAAvC;WACOC,QAAQ,GAAGsL,cAAc,CAACpG,OAAf,CAAuBlF,QAAvB,CAAH,GAAsC,IAArD;;;WAGK4a,qBAAP,4BAA0B7a,OAA1B,EAAmCiC,MAAnC,EAA2C;QACrCmC,IAAI,GAAGI,IAAI,CAACG,OAAL,CAAa3E,OAAb,EAAsBuM,UAAtB,CAAX;;QACMkI,OAAO,qBACR9C,SADQ,EAERxB,WAAW,CAACG,iBAAZ,CAA8BtQ,OAA9B,CAFQ,EAGR,OAAOiC,MAAP,KAAkB,QAAlB,IAA8BA,MAA9B,GAAuCA,MAAvC,GAAgD,EAHxC,CAAb;;QAMI,CAACmC,IAAD,IAASqQ,OAAO,CAACtF,MAAjB,IAA2B,YAAYxM,IAAZ,CAAiBV,MAAjB,CAA/B,EAAyD;MACvDwS,OAAO,CAACtF,MAAR,GAAiB,KAAjB;;;QAGE,CAAC/K,IAAL,EAAW;MACTA,IAAI,GAAG,IAAIsV,QAAJ,CAAa1Z,OAAb,EAAsByU,OAAtB,CAAP;;;QAGE,OAAOxS,MAAP,KAAkB,QAAtB,EAAgC;UAC1B,OAAOmC,IAAI,CAACnC,MAAD,CAAX,KAAwB,WAA5B,EAAyC;cACjC,IAAI0W,SAAJ,wBAAkC1W,MAAlC,QAAN;;;MAGFmC,IAAI,CAACnC,MAAD,CAAJ;;;;WAIGiM,mBAAP,0BAAwBjM,MAAxB,EAAgC;WACvB,KAAKkM,IAAL,CAAU,YAAY;MAC3BuL,QAAQ,CAACmB,kBAAT,CAA4B,IAA5B,EAAkC5Y,MAAlC;KADK,CAAP;;;WAKKqM,eAAP,sBAAoBtO,OAApB,EAA6B;WACpBwE,IAAI,CAACG,OAAL,CAAa3E,OAAb,EAAsBuM,UAAtB,CAAP;;;;;wBAlRmB;aACZD,SAAP;;;;wBAGmB;aACZqF,SAAP;;;;;;;;;;;;;AAuRJnJ,YAAY,CAAC8B,EAAb,CAAgBzK,QAAhB,EAA0BqG,OAAK,CAAC4G,cAAhC,EAAgDJ,UAAQ,CAACoC,WAAzD,EAAsE,UAAUhH,KAAV,EAAiB;;MAEjFA,KAAK,CAACe,MAAN,CAAaiO,OAAb,KAAyB,GAA7B,EAAkC;IAChChP,KAAK,CAAC/B,cAAN;;;MAGI4V,WAAW,GAAGxL,WAAW,CAACG,iBAAZ,CAA8B,IAA9B,CAApB;MACMrQ,QAAQ,GAAGF,sBAAsB,CAAC,IAAD,CAAvC;MACM6b,gBAAgB,GAAG9Y,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAAoBhF,QAApB,CAAD,CAAlC;EAEA2b,gBAAgB,CAACvZ,OAAjB,CAAyB,UAAArC,OAAO,EAAI;QAC5BoE,IAAI,GAAGI,IAAI,CAACG,OAAL,CAAa3E,OAAb,EAAsBuM,UAAtB,CAAb;QACItK,MAAJ;;QACImC,IAAJ,EAAU;;UAEJA,IAAI,CAAC8V,OAAL,KAAiB,IAAjB,IAAyB,OAAOyB,WAAW,CAAC/N,MAAnB,KAA8B,QAA3D,EAAqE;QACnExJ,IAAI,CAACqQ,OAAL,CAAa7G,MAAb,GAAsB+N,WAAW,CAAC/N,MAAlC;QACAxJ,IAAI,CAAC8V,OAAL,GAAe9V,IAAI,CAAC+V,UAAL,EAAf;;;MAGFlY,MAAM,GAAG,QAAT;KAPF,MAQO;MACLA,MAAM,GAAG0Z,WAAT;;;IAGFjC,QAAQ,CAACmB,kBAAT,CAA4B7a,OAA5B,EAAqCiC,MAArC;GAfF;CAVF;;;;;;;;AAoCA,IAAI,OAAOiJ,MAAP,KAAa,WAAjB,EAA8B;MACtBqD,oBAAkB,GAAGrD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,CAA3B;EACAnB,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAaqN,QAAQ,CAACxL,gBAAtB;EACAhD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWmC,WAAX,GAAyBkL,QAAzB;;EACAxO,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWoC,UAAX,GAAwB,YAAM;IAC5BvD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAakC,oBAAb;WACOmL,QAAQ,CAACxL,gBAAhB;GAFF;;;ACjaF;;;;;;AAMA,IAAM7B,MAAI,GAAG,UAAb;AACA,IAAMC,SAAO,GAAG,OAAhB;AACA,IAAMC,UAAQ,GAAG,aAAjB;AACA,IAAMC,WAAS,SAAOD,UAAtB;AACA,IAAME,cAAY,GAAG,WAArB;AACA,IAAMoP,cAAc,GAAG,EAAvB;;AACA,IAAMC,aAAa,GAAG,EAAtB;;AACA,IAAMC,WAAW,GAAG,CAApB;;AACA,IAAMC,gBAAgB,GAAG,EAAzB;;AACA,IAAMC,kBAAkB,GAAG,EAA3B;;AACA,IAAMC,wBAAwB,GAAG,CAAjC;;AACA,IAAMC,cAAc,GAAG,IAAIzZ,MAAJ,CAAcsZ,gBAAd,SAAkCC,kBAAlC,SAAwDJ,cAAxD,CAAvB;AAEA,IAAM3V,OAAK,GAAG;EACZ+S,IAAI,WAASzM,WADD;EAEZ0M,MAAM,aAAW1M,WAFL;EAGZU,IAAI,WAASV,WAHD;EAIZwM,KAAK,YAAUxM,WAJH;EAKZ4P,KAAK,YAAU5P,WALH;EAMZM,cAAc,YAAUN,WAAV,GAAsBC,cANxB;EAOZ4P,gBAAgB,cAAY7P,WAAZ,GAAwBC,cAP5B;EAQZ6P,cAAc,YAAU9P,WAAV,GAAsBC;CARtC;AAWA,IAAMM,WAAS,GAAG;EAChBwP,QAAQ,EAAE,UADM;EAEhBrP,IAAI,EAAE,MAFU;EAGhBsP,MAAM,EAAE,QAHQ;EAIhBC,SAAS,EAAE,WAJK;EAKhBC,QAAQ,EAAE,UALM;EAMhBC,SAAS,EAAE,qBANK;EAOhBC,eAAe,EAAE;CAPnB;AAUA,IAAMlQ,UAAQ,GAAG;EACfoC,WAAW,EAAE,0BADE;EAEf+N,UAAU,EAAE,gBAFG;EAGfC,IAAI,EAAE,gBAHS;EAIfC,UAAU,EAAE,aAJG;EAKfC,aAAa,EAAE;CALjB;AAQA,IAAMC,aAAa,GAAG;EACpBC,GAAG,EAAE,WADe;EAEpBC,MAAM,EAAE,SAFY;EAGpBC,MAAM,EAAE,cAHY;EAIpBC,SAAS,EAAE,YAJS;EAKpB9K,KAAK,EAAE,aALa;EAMpB+K,QAAQ,EAAE,WANU;EAOpBhL,IAAI,EAAE,YAPc;EAQpBiL,OAAO,EAAE;CARX;AAWA,IAAM5L,SAAO,GAAG;EACdjB,MAAM,EAAE,CADM;EAEd8M,IAAI,EAAE,IAFQ;EAGdC,QAAQ,EAAE,cAHI;EAIdC,SAAS,EAAE,QAJG;EAKdta,OAAO,EAAE;CALX;AAQA,IAAM8O,aAAW,GAAG;EAClBxB,MAAM,EAAE,0BADU;EAElB8M,IAAI,EAAE,SAFY;EAGlBC,QAAQ,EAAE,kBAHQ;EAIlBC,SAAS,EAAE,kBAJO;EAKlBta,OAAO,EAAE;;;;;;;CALX;;IAcMua;;;oBACQ3d,OAAZ,EAAqBiC,MAArB,EAA6B;SACtBmL,QAAL,GAAgBpN,OAAhB;SACK4d,OAAL,GAAe,IAAf;SACKnJ,OAAL,GAAe,KAAKC,UAAL,CAAgBzS,MAAhB,CAAf;SACK4b,KAAL,GAAa,KAAKC,eAAL,EAAb;SACKC,SAAL,GAAiB,KAAKC,aAAL,EAAjB;;SAEK9I,kBAAL;;IACA1Q,IAAI,CAACC,OAAL,CAAazE,OAAb,EAAsBuM,UAAtB,EAAgC,IAAhC;;;;;;;SAmBF4C,SAAA,kBAAS;QACH,KAAK/B,QAAL,CAAc6Q,QAAd,IAA0B,KAAK7Q,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAACwP,QAA3C,CAA9B,EAAoF;;;;QAI9E3O,MAAM,GAAG+P,QAAQ,CAACO,qBAAT,CAA+B,KAAK9Q,QAApC,CAAf;;QACM+Q,QAAQ,GAAG,KAAKN,KAAL,CAAWhQ,SAAX,CAAqBE,QAArB,CAA8BhB,WAAS,CAACG,IAAxC,CAAjB;;IAEAyQ,QAAQ,CAACS,WAAT;;QAEID,QAAJ,EAAc;;;;QAIR5G,aAAa,GAAG;MACpBA,aAAa,EAAE,KAAKnK;KADtB;QAGMiR,SAAS,GAAG7V,YAAY,CAACsC,OAAb,CAAqB8C,MAArB,EAA6B1H,OAAK,CAACgH,IAAnC,EAAyCqK,aAAzC,CAAlB;;QAEI8G,SAAS,CAACrY,gBAAd,EAAgC;;KAnBzB;;;QAwBH,CAAC,KAAK+X,SAAV,EAAqB;;;;;UAKf,OAAOO,MAAP,KAAkB,WAAtB,EAAmC;cAC3B,IAAI3F,SAAJ,CAAc,kEAAd,CAAN;;;UAGE4F,gBAAgB,GAAG,KAAKnR,QAA5B;;UAEI,KAAKqH,OAAL,CAAaiJ,SAAb,KAA2B,QAA/B,EAAyC;QACvCa,gBAAgB,GAAG3Q,MAAnB;OADF,MAEO,IAAIxM,SAAS,CAAC,KAAKqT,OAAL,CAAaiJ,SAAd,CAAb,EAAuC;QAC5Ca,gBAAgB,GAAG,KAAK9J,OAAL,CAAaiJ,SAAhC,CAD4C;;YAIxC,OAAO,KAAKjJ,OAAL,CAAaiJ,SAAb,CAAuBnC,MAA9B,KAAyC,WAA7C,EAA0D;UACxDgD,gBAAgB,GAAG,KAAK9J,OAAL,CAAaiJ,SAAb,CAAuB,CAAvB,CAAnB;;OAlBe;;;;;UAyBf,KAAKjJ,OAAL,CAAagJ,QAAb,KAA0B,cAA9B,EAA8C;QAC5C7P,MAAM,CAACC,SAAP,CAAiBgC,GAAjB,CAAqB9C,WAAS,CAAC6P,eAA/B;;;WAGGgB,OAAL,GAAe,IAAIU,MAAJ,CAAWC,gBAAX,EAA6B,KAAKV,KAAlC,EAAyC,KAAKW,gBAAL,EAAzC,CAAf;KArDK;;;;;;QA4DH,kBAAkB3e,QAAQ,CAAC0D,eAA3B,IACF,CAACT,SAAS,CAACyI,cAAc,CAACvG,OAAf,CAAuB4I,MAAvB,EAA+BlB,UAAQ,CAACqQ,UAAxC,CAAD,CAAT,CAA+DhU,MADlE,EAC0E;MACxEjG,SAAS,CAACjD,QAAQ,CAACiR,IAAT,CAAcrF,QAAf,CAAT,CACGpJ,OADH,CACW,UAAAyX,IAAI;eAAItR,YAAY,CAAC8B,EAAb,CAAgBwP,IAAhB,EAAsB,WAAtB,EAAmC,IAAnC,EAAyClW,IAAI,EAA7C,CAAJ;OADf;;;SAIGwJ,QAAL,CAAcsC,KAAd;;SACKtC,QAAL,CAAcuC,YAAd,CAA2B,eAA3B,EAA4C,IAA5C;;IAEAQ,WAAW,CAACkB,WAAZ,CAAwB,KAAKwM,KAA7B,EAAoC9Q,WAAS,CAACG,IAA9C;IACAiD,WAAW,CAACkB,WAAZ,CAAwBzD,MAAxB,EAAgCb,WAAS,CAACG,IAA1C;IACA1E,YAAY,CAACsC,OAAb,CAAqB8C,MAArB,EAA6B1H,OAAK,CAAC8S,KAAnC,EAA0CzB,aAA1C;;;SAGF+C,OAAA,gBAAO;QACD,KAAKlN,QAAL,CAAc6Q,QAAd,IAA0B,KAAK7Q,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAACwP,QAA3C,CAA1B,IAAkF,KAAKsB,KAAL,CAAWhQ,SAAX,CAAqBE,QAArB,CAA8BhB,WAAS,CAACG,IAAxC,CAAtF,EAAqI;;;;QAI/HU,MAAM,GAAG+P,QAAQ,CAACO,qBAAT,CAA+B,KAAK9Q,QAApC,CAAf;;QACMmK,aAAa,GAAG;MACpBA,aAAa,EAAE,KAAKnK;KADtB;QAIMiR,SAAS,GAAG7V,YAAY,CAACsC,OAAb,CAAqB8C,MAArB,EAA6B1H,OAAK,CAACgH,IAAnC,EAAyCqK,aAAzC,CAAlB;;QAEI8G,SAAS,CAACrY,gBAAd,EAAgC;;;;IAIhCmK,WAAW,CAACkB,WAAZ,CAAwB,KAAKwM,KAA7B,EAAoC9Q,WAAS,CAACG,IAA9C;IACAiD,WAAW,CAACkB,WAAZ,CAAwBzD,MAAxB,EAAgCb,WAAS,CAACG,IAA1C;IACA1E,YAAY,CAACsC,OAAb,CAAqB8C,MAArB,EAA6B1H,OAAK,CAAC8S,KAAnC,EAA0CzB,aAA1C;;;SAGF8C,OAAA,gBAAO;QACD,KAAKjN,QAAL,CAAc6Q,QAAd,IAA0B,KAAK7Q,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAACwP,QAA3C,CAA1B,IAAkF,CAAC,KAAKsB,KAAL,CAAWhQ,SAAX,CAAqBE,QAArB,CAA8BhB,WAAS,CAACG,IAAxC,CAAvF,EAAsI;;;;QAIhIU,MAAM,GAAG+P,QAAQ,CAACO,qBAAT,CAA+B,KAAK9Q,QAApC,CAAf;;QACMmK,aAAa,GAAG;MACpBA,aAAa,EAAE,KAAKnK;KADtB;QAIMqR,SAAS,GAAGjW,YAAY,CAACsC,OAAb,CAAqB8C,MAArB,EAA6B1H,OAAK,CAAC+S,IAAnC,EAAyC1B,aAAzC,CAAlB;;QAEIkH,SAAS,CAACzY,gBAAd,EAAgC;;;;IAIhCmK,WAAW,CAACkB,WAAZ,CAAwB,KAAKwM,KAA7B,EAAoC9Q,WAAS,CAACG,IAA9C;IACAiD,WAAW,CAACkB,WAAZ,CAAwBzD,MAAxB,EAAgCb,WAAS,CAACG,IAA1C;IACA1E,YAAY,CAACsC,OAAb,CAAqB8C,MAArB,EAA6B1H,OAAK,CAACgT,MAAnC,EAA2C3B,aAA3C;;;SAGF5J,UAAA,mBAAU;IACRnJ,IAAI,CAACI,UAAL,CAAgB,KAAKwI,QAArB,EAA+Bb,UAA/B;IACA/D,YAAY,CAACC,GAAb,CAAiB,KAAK2E,QAAtB,EAAgCZ,WAAhC;SACKY,QAAL,GAAgB,IAAhB;SACKyQ,KAAL,GAAa,IAAb;;QACI,KAAKD,OAAL,KAAiB,IAArB,EAA2B;WACpBA,OAAL,CAAac,OAAb;;WACKd,OAAL,GAAe,IAAf;;;;SAIJe,SAAA,kBAAS;SACFZ,SAAL,GAAiB,KAAKC,aAAL,EAAjB;;QACI,KAAKJ,OAAL,KAAiB,IAArB,EAA2B;WACpBA,OAAL,CAAagB,cAAb;;;;;SAMJ1J,qBAAA,8BAAqB;;;IACnB1M,YAAY,CAAC8B,EAAb,CAAgB,KAAK8C,QAArB,EAA+BlH,OAAK,CAACkW,KAArC,EAA4C,UAAAtU,KAAK,EAAI;MACnDA,KAAK,CAAC/B,cAAN;MACA+B,KAAK,CAAC+W,eAAN;;MACA,KAAI,CAAC1P,MAAL;KAHF;;;SAOFuF,aAAA,oBAAWzS,MAAX,EAAmB;IACjBA,MAAM,qBACD,KAAK6c,WAAL,CAAiBnN,OADhB,EAEDxB,WAAW,CAACG,iBAAZ,CAA8B,KAAKlD,QAAnC,CAFC,EAGDnL,MAHC,CAAN;IAMAF,eAAe,CACbsK,MADa,EAEbpK,MAFa,EAGb,KAAK6c,WAAL,CAAiB5M,WAHJ,CAAf;WAMOjQ,MAAP;;;SAGF6b,kBAAA,2BAAkB;QACZ,CAAC,KAAKD,KAAV,EAAiB;UACTjQ,MAAM,GAAG+P,QAAQ,CAACO,qBAAT,CAA+B,KAAK9Q,QAApC,CAAf;;UAEIQ,MAAJ,EAAY;aACLiQ,KAAL,GAAatS,cAAc,CAACpG,OAAf,CAAuBuH,UAAQ,CAACoQ,IAAhC,EAAsClP,MAAtC,CAAb;;;;WAIG,KAAKiQ,KAAZ;;;SAGFkB,gBAAA,yBAAgB;QACRC,cAAc,GAAG,KAAK5R,QAAL,CAAcjK,UAArC;QACI8b,SAAS,GAAGhC,aAAa,CAACG,MAA9B,CAFc;;QAKV4B,cAAc,CAACnR,SAAf,CAAyBE,QAAzB,CAAkChB,WAAS,CAACyP,MAA5C,CAAJ,EAAyD;MACvDyC,SAAS,GAAGhC,aAAa,CAACC,GAA1B;;UACI,KAAKW,KAAL,CAAWhQ,SAAX,CAAqBE,QAArB,CAA8BhB,WAAS,CAAC4P,SAAxC,CAAJ,EAAwD;QACtDsC,SAAS,GAAGhC,aAAa,CAACE,MAA1B;;KAHJ,MAKO,IAAI6B,cAAc,CAACnR,SAAf,CAAyBE,QAAzB,CAAkChB,WAAS,CAAC0P,SAA5C,CAAJ,EAA4D;MACjEwC,SAAS,GAAGhC,aAAa,CAAC1K,KAA1B;KADK,MAEA,IAAIyM,cAAc,CAACnR,SAAf,CAAyBE,QAAzB,CAAkChB,WAAS,CAAC2P,QAA5C,CAAJ,EAA2D;MAChEuC,SAAS,GAAGhC,aAAa,CAAC3K,IAA1B;KADK,MAEA,IAAI,KAAKuL,KAAL,CAAWhQ,SAAX,CAAqBE,QAArB,CAA8BhB,WAAS,CAAC4P,SAAxC,CAAJ,EAAwD;MAC7DsC,SAAS,GAAGhC,aAAa,CAACI,SAA1B;;;WAGK4B,SAAP;;;SAGFjB,gBAAA,yBAAgB;WACPnX,OAAO,CAAC0E,cAAc,CAACvG,OAAf,CAAuB,KAAKoI,QAA5B,EAAsC,SAAtC,CAAD,CAAd;;;SAGF8R,aAAA,sBAAa;;;QACLxO,MAAM,GAAG,EAAf;;QAEI,OAAO,KAAK+D,OAAL,CAAa/D,MAApB,KAA+B,UAAnC,EAA+C;MAC7CA,MAAM,CAACrI,EAAP,GAAY,UAAAjE,IAAI,EAAI;QAClBA,IAAI,CAAC+a,OAAL,qBACK/a,IAAI,CAAC+a,OADV,EAEK,MAAI,CAAC1K,OAAL,CAAa/D,MAAb,CAAoBtM,IAAI,CAAC+a,OAAzB,EAAkC,MAAI,CAAC/R,QAAvC,KAAoD,EAFzD;eAKOhJ,IAAP;OANF;KADF,MASO;MACLsM,MAAM,CAACA,MAAP,GAAgB,KAAK+D,OAAL,CAAa/D,MAA7B;;;WAGKA,MAAP;;;SAGF8N,mBAAA,4BAAmB;QACXY,YAAY,GAAG;MACnBH,SAAS,EAAE,KAAKF,aAAL,EADQ;MAEnBM,SAAS,EAAE;QACT3O,MAAM,EAAE,KAAKwO,UAAL,EADC;QAET1B,IAAI,EAAE;UACJ8B,OAAO,EAAE,KAAK7K,OAAL,CAAa+I;SAHf;QAKT+B,eAAe,EAAE;UACfC,iBAAiB,EAAE,KAAK/K,OAAL,CAAagJ;;OARjB;;KAArB;;QAcI,KAAKhJ,OAAL,CAAarR,OAAb,KAAyB,QAA7B,EAAuC;MACrCgc,YAAY,CAACC,SAAb,CAAuBI,UAAvB,GAAoC;QAClCH,OAAO,EAAE;OADX;;;WAKKF,YAAP;;;;WAKKM,qBAAP,4BAA0B1f,OAA1B,EAAmCiC,MAAnC,EAA2C;QACrCmC,IAAI,GAAGI,IAAI,CAACG,OAAL,CAAa3E,OAAb,EAAsBuM,UAAtB,CAAX;;QACMkI,OAAO,GAAG,OAAOxS,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsC,IAAtD;;QAEI,CAACmC,IAAL,EAAW;MACTA,IAAI,GAAG,IAAIuZ,QAAJ,CAAa3d,OAAb,EAAsByU,OAAtB,CAAP;;;QAGE,OAAOxS,MAAP,KAAkB,QAAtB,EAAgC;UAC1B,OAAOmC,IAAI,CAACnC,MAAD,CAAX,KAAwB,WAA5B,EAAyC;cACjC,IAAI0W,SAAJ,wBAAkC1W,MAAlC,QAAN;;;MAGFmC,IAAI,CAACnC,MAAD,CAAJ;;;;WAIGiM,mBAAP,0BAAwBjM,MAAxB,EAAgC;WACvB,KAAKkM,IAAL,CAAU,YAAY;MAC3BwP,QAAQ,CAAC+B,kBAAT,CAA4B,IAA5B,EAAkCzd,MAAlC;KADK,CAAP;;;WAKKmc,cAAP,qBAAmBtW,KAAnB,EAA0B;QACpBA,KAAK,KAAKA,KAAK,CAACC,KAAN,KAAgBmU,wBAAhB,IACZpU,KAAK,CAACE,IAAN,KAAe,OAAf,IAA0BF,KAAK,CAACC,KAAN,KAAgBgU,WADnC,CAAT,EAC0D;;;;QAIpD4D,OAAO,GAAG7c,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAAoByH,UAAQ,CAACoC,WAA7B,CAAD,CAAzB;;SACK,IAAIhG,CAAC,GAAG,CAAR,EAAWM,GAAG,GAAGuW,OAAO,CAAC5W,MAA9B,EAAsCD,CAAC,GAAGM,GAA1C,EAA+CN,CAAC,EAAhD,EAAoD;UAC5C8E,MAAM,GAAG+P,QAAQ,CAACO,qBAAT,CAA+ByB,OAAO,CAAC7W,CAAD,CAAtC,CAAf;;UACM8W,OAAO,GAAGpb,IAAI,CAACG,OAAL,CAAagb,OAAO,CAAC7W,CAAD,CAApB,EAAyByD,UAAzB,CAAhB;UACMgL,aAAa,GAAG;QACpBA,aAAa,EAAEoI,OAAO,CAAC7W,CAAD;OADxB;;UAIIhB,KAAK,IAAIA,KAAK,CAACE,IAAN,KAAe,OAA5B,EAAqC;QACnCuP,aAAa,CAACsI,UAAd,GAA2B/X,KAA3B;;;UAGE,CAAC8X,OAAL,EAAc;;;;UAIRE,YAAY,GAAGF,OAAO,CAAC/B,KAA7B;;UACI,CAACjQ,MAAM,CAACC,SAAP,CAAiBE,QAAjB,CAA0BhB,WAAS,CAACG,IAApC,CAAL,EAAgD;;;;UAI5CpF,KAAK,KAAKA,KAAK,CAACE,IAAN,KAAe,OAAf,IACV,kBAAkBrF,IAAlB,CAAuBmF,KAAK,CAACe,MAAN,CAAaiO,OAApC,CADU,IAEVhP,KAAK,CAACE,IAAN,KAAe,OAAf,IAA0BF,KAAK,CAACC,KAAN,KAAgBgU,WAFrC,CAAL,IAGAnO,MAAM,CAACG,QAAP,CAAgBjG,KAAK,CAACe,MAAtB,CAHJ,EAGmC;;;;UAI7B4V,SAAS,GAAGjW,YAAY,CAACsC,OAAb,CAAqB8C,MAArB,EAA6B1H,OAAK,CAAC+S,IAAnC,EAAyC1B,aAAzC,CAAlB;;UACIkH,SAAS,CAACzY,gBAAd,EAAgC;;OA5BkB;;;;UAkC9C,kBAAkBnG,QAAQ,CAAC0D,eAA/B,EAAgD;QAC9CT,SAAS,CAACjD,QAAQ,CAACiR,IAAT,CAAcrF,QAAf,CAAT,CACGpJ,OADH,CACW,UAAAyX,IAAI;iBAAItR,YAAY,CAACC,GAAb,CAAiBqR,IAAjB,EAAuB,WAAvB,EAAoC,IAApC,EAA0ClW,IAAI,EAA9C,CAAJ;SADf;;;MAIF+b,OAAO,CAAC7W,CAAD,CAAP,CAAW6G,YAAX,CAAwB,eAAxB,EAAyC,OAAzC;MAEAmQ,YAAY,CAACjS,SAAb,CAAuBC,MAAvB,CAA8Bf,WAAS,CAACG,IAAxC;MACAU,MAAM,CAACC,SAAP,CAAiBC,MAAjB,CAAwBf,WAAS,CAACG,IAAlC;MACA1E,YAAY,CAACsC,OAAb,CAAqB8C,MAArB,EAA6B1H,OAAK,CAACgT,MAAnC,EAA2C3B,aAA3C;;;;WAIG2G,wBAAP,+BAA6Ble,OAA7B,EAAsC;QAChC4N,MAAJ;QACM3N,QAAQ,GAAGF,sBAAsB,CAACC,OAAD,CAAvC;;QAEIC,QAAJ,EAAc;MACZ2N,MAAM,GAAGrC,cAAc,CAACpG,OAAf,CAAuBlF,QAAvB,CAAT;;;WAGK2N,MAAM,IAAI5N,OAAO,CAACmD,UAAzB;;;WAGK4c,yBAAP,gCAA8BjY,KAA9B,EAAqC;;;;;;;;QAQ/B,kBAAkBnF,IAAlB,CAAuBmF,KAAK,CAACe,MAAN,CAAaiO,OAApC,IACFhP,KAAK,CAACC,KAAN,KAAgB+T,aAAhB,IAAiChU,KAAK,CAACC,KAAN,KAAgB8T,cAAhB,KAChC/T,KAAK,CAACC,KAAN,KAAgBkU,kBAAhB,IAAsCnU,KAAK,CAACC,KAAN,KAAgBiU,gBAAtD,IACCzQ,cAAc,CAACvG,OAAf,CAAuB8C,KAAK,CAACe,MAA7B,EAAqC6D,UAAQ,CAACoQ,IAA9C,CAF+B,CAD/B,GAIF,CAACX,cAAc,CAACxZ,IAAf,CAAoBmF,KAAK,CAACC,KAA1B,CAJH,EAIqC;;;;IAIrCD,KAAK,CAAC/B,cAAN;IACA+B,KAAK,CAAC+W,eAAN;;QAEI,KAAKZ,QAAL,IAAiB,KAAKpQ,SAAL,CAAeE,QAAf,CAAwBhB,WAAS,CAACwP,QAAlC,CAArB,EAAkE;;;;QAI5D3O,MAAM,GAAG+P,QAAQ,CAACO,qBAAT,CAA+B,IAA/B,CAAf;;QACMC,QAAQ,GAAGvQ,MAAM,CAACC,SAAP,CAAiBE,QAAjB,CAA0BhB,WAAS,CAACG,IAApC,CAAjB;;QAEI,CAACiR,QAAD,IAAaA,QAAQ,KAAKrW,KAAK,CAACC,KAAN,KAAgB8T,cAAhB,IAAkC/T,KAAK,CAACC,KAAN,KAAgB+T,aAAvD,CAAzB,EAAgG;UAC1FhU,KAAK,CAACC,KAAN,KAAgB8T,cAApB,EAAoC;QAClCtQ,cAAc,CAACpG,OAAf,CAAuBuH,UAAQ,CAACoC,WAAhC,EAA6ClB,MAA7C,EAAqD8B,KAArD;;;MAGFiO,QAAQ,CAACS,WAAT;;;;;QAII4B,KAAK,GAAGld,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAAoByH,UAAQ,CAACsQ,aAA7B,EAA4CpP,MAA5C,CAAD,CAAvB;;QAEI,CAACoS,KAAK,CAACjX,MAAX,EAAmB;;;;QAIf8M,KAAK,GAAGmK,KAAK,CAACnW,OAAN,CAAc/B,KAAK,CAACe,MAApB,CAAZ;;QAEIf,KAAK,CAACC,KAAN,KAAgBiU,gBAAhB,IAAoCnG,KAAK,GAAG,CAAhD,EAAmD;;MACjDA,KAAK;;;QAGH/N,KAAK,CAACC,KAAN,KAAgBkU,kBAAhB,IAAsCpG,KAAK,GAAGmK,KAAK,CAACjX,MAAN,GAAe,CAAjE,EAAoE;;MAClE8M,KAAK;;;QAGHA,KAAK,GAAG,CAAZ,EAAe;MACbA,KAAK,GAAG,CAAR;;;IAGFmK,KAAK,CAACnK,KAAD,CAAL,CAAanG,KAAb;;;WAGKpB,eAAP,sBAAoBtO,OAApB,EAA6B;WACpBwE,IAAI,CAACG,OAAL,CAAa3E,OAAb,EAAsBuM,UAAtB,CAAP;;;;;wBAnZmB;aACZD,SAAP;;;;wBAGmB;aACZqF,SAAP;;;;wBAGuB;aAChBO,aAAP;;;;;;;;;;;;;AAoZJ1J,YAAY,CAAC8B,EAAb,CAAgBzK,QAAhB,EAA0BqG,OAAK,CAACmW,gBAAhC,EAAkD3P,UAAQ,CAACoC,WAA3D,EAAwE6O,QAAQ,CAACoC,sBAAjF;AACAvX,YAAY,CAAC8B,EAAb,CAAgBzK,QAAhB,EAA0BqG,OAAK,CAACmW,gBAAhC,EAAkD3P,UAAQ,CAACoQ,IAA3D,EAAiEa,QAAQ,CAACoC,sBAA1E;AACAvX,YAAY,CAAC8B,EAAb,CAAgBzK,QAAhB,EAA0BqG,OAAK,CAAC4G,cAAhC,EAAgD6Q,QAAQ,CAACS,WAAzD;AACA5V,YAAY,CAAC8B,EAAb,CAAgBzK,QAAhB,EAA0BqG,OAAK,CAACoW,cAAhC,EAAgDqB,QAAQ,CAACS,WAAzD;AACA5V,YAAY,CAAC8B,EAAb,CAAgBzK,QAAhB,EAA0BqG,OAAK,CAAC4G,cAAhC,EAAgDJ,UAAQ,CAACoC,WAAzD,EAAsE,UAAUhH,KAAV,EAAiB;EACrFA,KAAK,CAAC/B,cAAN;EACA+B,KAAK,CAAC+W,eAAN;;EACAlB,QAAQ,CAAC+B,kBAAT,CAA4B,IAA5B,EAAkC,QAAlC;CAHF;AAKAlX,YAAY,CACT8B,EADH,CACMzK,QADN,EACgBqG,OAAK,CAAC4G,cADtB,EACsCJ,UAAQ,CAACmQ,UAD/C,EAC2D,UAAA/W,CAAC;SAAIA,CAAC,CAAC+Y,eAAF,EAAJ;CAD5D;;;;;;;;AAUA,IAAI,OAAO3T,MAAP,KAAa,WAAjB,EAA8B;MACtBqD,oBAAkB,GAAGrD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,CAA3B;EACAnB,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAasR,QAAQ,CAACzP,gBAAtB;EACAhD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWmC,WAAX,GAAyBmP,QAAzB;;EACAzS,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWoC,UAAX,GAAwB,YAAM;IAC5BvD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAakC,oBAAb;WACOoP,QAAQ,CAACzP,gBAAhB;GAFF;;;ACjhBF;;;;;;AAMA,IAAM7B,MAAI,GAAG,OAAb;AACA,IAAMC,SAAO,GAAG,OAAhB;AACA,IAAMC,UAAQ,GAAG,UAAjB;AACA,IAAMC,WAAS,SAAOD,UAAtB;AACA,IAAME,cAAY,GAAG,WAArB;AACA,IAAMoP,gBAAc,GAAG,EAAvB;;AAEA,IAAMlK,SAAO,GAAG;EACdsO,QAAQ,EAAE,IADI;EAEdpO,QAAQ,EAAE,IAFI;EAGdnC,KAAK,EAAE,IAHO;EAId4K,IAAI,EAAE;CAJR;AAOA,IAAMpI,aAAW,GAAG;EAClB+N,QAAQ,EAAE,kBADQ;EAElBpO,QAAQ,EAAE,SAFQ;EAGlBnC,KAAK,EAAE,SAHW;EAIlB4K,IAAI,EAAE;CAJR;AAOA,IAAMpU,OAAK,GAAG;EACZ+S,IAAI,WAASzM,WADD;EAEZ0M,MAAM,aAAW1M,WAFL;EAGZU,IAAI,WAASV,WAHD;EAIZwM,KAAK,YAAUxM,WAJH;EAKZ0T,OAAO,cAAY1T,WALP;EAMZ2T,MAAM,aAAW3T,WANL;EAOZ4T,aAAa,oBAAkB5T,WAPnB;EAQZ6T,eAAe,sBAAoB7T,WARvB;EASZ8T,eAAe,sBAAoB9T,WATvB;EAUZ+T,iBAAiB,wBAAsB/T,WAV3B;EAWZM,cAAc,YAAUN,WAAV,GAAsBC;CAXtC;AAcA,IAAMM,WAAS,GAAG;EAChByT,UAAU,EAAE,yBADI;EAEhBC,kBAAkB,EAAE,yBAFJ;EAGhBC,QAAQ,EAAE,gBAHM;EAIhBC,IAAI,EAAE,YAJU;EAKhB1T,IAAI,EAAE,MALU;EAMhBC,IAAI,EAAE;CANR;AASA,IAAMR,UAAQ,GAAG;EACfkU,MAAM,EAAE,eADO;EAEfC,UAAU,EAAE,aAFG;EAGf/R,WAAW,EAAE,uBAHE;EAIfgS,YAAY,EAAE,wBAJC;EAKfC,aAAa,EAAE,mDALA;EAMfC,cAAc,EAAE;;;;;;;CANlB;;IAeMC;;;iBACQjhB,OAAZ,EAAqBiC,MAArB,EAA6B;SACtBwS,OAAL,GAAe,KAAKC,UAAL,CAAgBzS,MAAhB,CAAf;SACKmL,QAAL,GAAgBpN,OAAhB;SACKkhB,OAAL,GAAe3V,cAAc,CAACpG,OAAf,CAAuBuH,UAAQ,CAACkU,MAAhC,EAAwC5gB,OAAxC,CAAf;SACKmhB,SAAL,GAAiB,IAAjB;SACKC,QAAL,GAAgB,KAAhB;SACKC,kBAAL,GAA0B,KAA1B;SACKC,oBAAL,GAA4B,KAA5B;SACK3H,gBAAL,GAAwB,KAAxB;SACK4H,eAAL,GAAuB,CAAvB;IACA/c,IAAI,CAACC,OAAL,CAAazE,OAAb,EAAsBuM,UAAtB,EAAgC,IAAhC;;;;;;;SAeF4C,SAAA,gBAAOoI,aAAP,EAAsB;WACb,KAAK6J,QAAL,GAAgB,KAAK/G,IAAL,EAAhB,GAA8B,KAAKC,IAAL,CAAU/C,aAAV,CAArC;;;SAGF+C,OAAA,cAAK/C,aAAL,EAAoB;;;QACd,KAAK6J,QAAL,IAAiB,KAAKzH,gBAA1B,EAA4C;;;;QAIxC,KAAKvM,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAACE,IAA3C,CAAJ,EAAsD;WAC/C0M,gBAAL,GAAwB,IAAxB;;;QAGI0E,SAAS,GAAG7V,YAAY,CAACsC,OAAb,CAAqB,KAAKsC,QAA1B,EAAoClH,OAAK,CAACgH,IAA1C,EAAgD;MAChEqK,aAAa,EAAbA;KADgB,CAAlB;;QAII,KAAK6J,QAAL,IAAiB/C,SAAS,CAACrY,gBAA/B,EAAiD;;;;SAI5Cob,QAAL,GAAgB,IAAhB;;SAEKI,eAAL;;SACKC,aAAL;;SAEKC,aAAL;;SAEKC,eAAL;;SACKC,eAAL;;IAEApZ,YAAY,CAAC8B,EAAb,CAAgB,KAAK8C,QAArB,EACElH,OAAK,CAACka,aADR,EAEE1T,UAAQ,CAACoU,YAFX,EAGE,UAAAhZ,KAAK;aAAI,KAAI,CAACuS,IAAL,CAAUvS,KAAV,CAAJ;KAHP;IAMAU,YAAY,CAAC8B,EAAb,CAAgB,KAAK4W,OAArB,EAA8Bhb,OAAK,CAACqa,iBAApC,EAAuD,YAAM;MAC3D/X,YAAY,CAAC+B,GAAb,CAAiB,KAAI,CAAC6C,QAAtB,EAAgClH,OAAK,CAACoa,eAAtC,EAAuD,UAAAxY,KAAK,EAAI;YAC1DA,KAAK,CAACe,MAAN,KAAiB,KAAI,CAACuE,QAA1B,EAAoC;UAClC,KAAI,CAACkU,oBAAL,GAA4B,IAA5B;;OAFJ;KADF;;SAQKO,aAAL,CAAmB;aAAM,KAAI,CAACC,YAAL,CAAkBvK,aAAlB,CAAN;KAAnB;;;SAGF8C,OAAA,cAAKvS,KAAL,EAAY;;;QACNA,KAAJ,EAAW;MACTA,KAAK,CAAC/B,cAAN;;;QAGE,CAAC,KAAKqb,QAAN,IAAkB,KAAKzH,gBAA3B,EAA6C;;;;QAIvC8E,SAAS,GAAGjW,YAAY,CAACsC,OAAb,CAAqB,KAAKsC,QAA1B,EAAoClH,OAAK,CAAC+S,IAA1C,CAAlB;;QAEI,CAAC,KAAKmI,QAAN,IAAkB3C,SAAS,CAACzY,gBAAhC,EAAkD;;;;SAI7Cob,QAAL,GAAgB,KAAhB;;QACMW,UAAU,GAAG,KAAK3U,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAACE,IAA3C,CAAnB;;QAEI8U,UAAJ,EAAgB;WACTpI,gBAAL,GAAwB,IAAxB;;;SAGGgI,eAAL;;SACKC,eAAL;;IAEApZ,YAAY,CAACC,GAAb,CAAiB5I,QAAjB,EAA2BqG,OAAK,CAACga,OAAjC;;SAEK9S,QAAL,CAAcS,SAAd,CAAwBC,MAAxB,CAA+Bf,WAAS,CAACG,IAAzC;;IAEA1E,YAAY,CAACC,GAAb,CAAiB,KAAK2E,QAAtB,EAAgClH,OAAK,CAACka,aAAtC;IACA5X,YAAY,CAACC,GAAb,CAAiB,KAAKyY,OAAtB,EAA+Bhb,OAAK,CAACqa,iBAArC;;QAEIwB,UAAJ,EAAgB;UACRthB,kBAAkB,GAAGF,gCAAgC,CAAC,KAAK6M,QAAN,CAA3D;MAEA5E,YAAY,CAAC+B,GAAb,CAAiB,KAAK6C,QAAtB,EAAgCpO,cAAhC,EAAgD,UAAA8I,KAAK;eAAI,MAAI,CAACka,UAAL,CAAgBla,KAAhB,CAAJ;OAArD;MACAxG,oBAAoB,CAAC,KAAK8L,QAAN,EAAgB3M,kBAAhB,CAApB;KAJF,MAKO;WACAuhB,UAAL;;;;SAIJrU,UAAA,mBAAU;KACP1O,MAAD,EAAS,KAAKmO,QAAd,EAAwB,KAAK8T,OAA7B,EACG7e,OADH,CACW,UAAA4f,WAAW;aAAIzZ,YAAY,CAACC,GAAb,CAAiBwZ,WAAjB,EAA8BzV,WAA9B,CAAJ;KADtB;;;;;;;IAQAhE,YAAY,CAACC,GAAb,CAAiB5I,QAAjB,EAA2BqG,OAAK,CAACga,OAAjC;IAEA1b,IAAI,CAACI,UAAL,CAAgB,KAAKwI,QAArB,EAA+Bb,UAA/B;SAEKkI,OAAL,GAAe,IAAf;SACKrH,QAAL,GAAgB,IAAhB;SACK8T,OAAL,GAAe,IAAf;SACKC,SAAL,GAAiB,IAAjB;SACKC,QAAL,GAAgB,IAAhB;SACKC,kBAAL,GAA0B,IAA1B;SACKC,oBAAL,GAA4B,IAA5B;SACK3H,gBAAL,GAAwB,IAAxB;SACK4H,eAAL,GAAuB,IAAvB;;;SAGFW,eAAA,wBAAe;SACRR,aAAL;;;;SAKFhN,aAAA,oBAAWzS,MAAX,EAAmB;IACjBA,MAAM,qBACD0P,SADC,EAED1P,MAFC,CAAN;IAIAF,eAAe,CAACsK,MAAD,EAAOpK,MAAP,EAAeiQ,aAAf,CAAf;WACOjQ,MAAP;;;SAGF6f,eAAA,sBAAavK,aAAb,EAA4B;;;QACpBwK,UAAU,GAAG,KAAK3U,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAACE,IAA3C,CAAnB;;QAEI,CAAC,KAAKG,QAAL,CAAcjK,UAAf,IACA,KAAKiK,QAAL,CAAcjK,UAAd,CAAyB9B,QAAzB,KAAsCyK,IAAI,CAACC,YAD/C,EAC6D;;MAE3DlM,QAAQ,CAACiR,IAAT,CAAcqR,WAAd,CAA0B,KAAK/U,QAA/B;;;SAGGA,QAAL,CAAclK,KAAd,CAAoBE,OAApB,GAA8B,OAA9B;;SACKgK,QAAL,CAAcrG,eAAd,CAA8B,aAA9B;;SACKqG,QAAL,CAAcuC,YAAd,CAA2B,YAA3B,EAAyC,IAAzC;;QAEI,KAAKuR,OAAL,CAAarT,SAAb,CAAuBE,QAAvB,CAAgChB,WAAS,CAACyT,UAA1C,CAAJ,EAA2D;MACzDjV,cAAc,CAACpG,OAAf,CAAuBuH,UAAQ,CAACmU,UAAhC,EAA4C,KAAKK,OAAjD,EAA0DnQ,SAA1D,GAAsE,CAAtE;KADF,MAEO;WACA3D,QAAL,CAAc2D,SAAd,GAA0B,CAA1B;;;QAGEgR,UAAJ,EAAgB;MACdle,MAAM,CAAC,KAAKuJ,QAAN,CAAN;;;SAGGA,QAAL,CAAcS,SAAd,CAAwBgC,GAAxB,CAA4B9C,WAAS,CAACG,IAAtC;;QAEI,KAAKuH,OAAL,CAAa/E,KAAjB,EAAwB;WACjB0S,aAAL;;;QAGIC,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;UAC3B,MAAI,CAAC5N,OAAL,CAAa/E,KAAjB,EAAwB;QACtB,MAAI,CAACtC,QAAL,CAAcsC,KAAd;;;MAGF,MAAI,CAACiK,gBAAL,GAAwB,KAAxB;MACAnR,YAAY,CAACsC,OAAb,CAAqB,MAAI,CAACsC,QAA1B,EAAoClH,OAAK,CAAC8S,KAA1C,EAAiD;QAC/CzB,aAAa,EAAbA;OADF;KANF;;QAWIwK,UAAJ,EAAgB;UACRthB,kBAAkB,GAAGF,gCAAgC,CAAC,KAAK2gB,OAAN,CAA3D;MAEA1Y,YAAY,CAAC+B,GAAb,CAAiB,KAAK2W,OAAtB,EAA+BliB,cAA/B,EAA+CqjB,kBAA/C;MACA/gB,oBAAoB,CAAC,KAAK4f,OAAN,EAAezgB,kBAAf,CAApB;KAJF,MAKO;MACL4hB,kBAAkB;;;;SAItBD,gBAAA,yBAAgB;;;IACd5Z,YAAY,CAACC,GAAb,CAAiB5I,QAAjB,EAA2BqG,OAAK,CAACga,OAAjC,EADc;;IAEd1X,YAAY,CAAC8B,EAAb,CAAgBzK,QAAhB,EAA0BqG,OAAK,CAACga,OAAhC,EAAyC,UAAApY,KAAK,EAAI;UAC5CjI,QAAQ,KAAKiI,KAAK,CAACe,MAAnB,IACA,MAAI,CAACuE,QAAL,KAAkBtF,KAAK,CAACe,MADxB,IAEA,CAAC,MAAI,CAACuE,QAAL,CAAcW,QAAd,CAAuBjG,KAAK,CAACe,MAA7B,CAFL,EAE2C;QACzC,MAAI,CAACuE,QAAL,CAAcsC,KAAd;;KAJJ;;;SASFiS,kBAAA,2BAAkB;;;QACZ,KAAKP,QAAL,IAAiB,KAAK3M,OAAL,CAAa5C,QAAlC,EAA4C;MAC1CrJ,YAAY,CAAC8B,EAAb,CAAgB,KAAK8C,QAArB,EAA+BlH,OAAK,CAACma,eAArC,EAAsD,UAAAvY,KAAK,EAAI;YACzDA,KAAK,CAACC,KAAN,KAAgB8T,gBAApB,EAAoC;UAClC/T,KAAK,CAAC/B,cAAN;;UACA,MAAI,CAACsU,IAAL;;OAHJ;KADF,MAOO,IAAI,CAAC,KAAK+G,QAAV,EAAoB;MACzB5Y,YAAY,CAACC,GAAb,CAAiB,KAAK2E,QAAtB,EAAgClH,OAAK,CAACma,eAAtC;;;;SAIJuB,kBAAA,2BAAkB;;;QACZ,KAAKR,QAAT,EAAmB;MACjB5Y,YAAY,CAAC8B,EAAb,CAAgBrL,MAAhB,EAAwBiH,OAAK,CAACia,MAA9B,EAAsC,UAAArY,KAAK;eAAI,MAAI,CAACoa,YAAL,CAAkBpa,KAAlB,CAAJ;OAA3C;KADF,MAEO;MACLU,YAAY,CAACC,GAAb,CAAiBxJ,MAAjB,EAAyBiH,OAAK,CAACia,MAA/B;;;;SAIJ6B,aAAA,sBAAa;;;SACN5U,QAAL,CAAclK,KAAd,CAAoBE,OAApB,GAA8B,MAA9B;;SACKgK,QAAL,CAAcuC,YAAd,CAA2B,aAA3B,EAA0C,IAA1C;;SACKvC,QAAL,CAAcrG,eAAd,CAA8B,YAA9B;;SACK4S,gBAAL,GAAwB,KAAxB;;SACKkI,aAAL,CAAmB,YAAM;MACvBhiB,QAAQ,CAACiR,IAAT,CAAcjD,SAAd,CAAwBC,MAAxB,CAA+Bf,WAAS,CAAC4T,IAAzC;;MACA,MAAI,CAAC2B,iBAAL;;MACA,MAAI,CAACC,eAAL;;MACA/Z,YAAY,CAACsC,OAAb,CAAqB,MAAI,CAACsC,QAA1B,EAAoClH,OAAK,CAACgT,MAA1C;KAJF;;;SAQFsJ,kBAAA,2BAAkB;QACZ,KAAKrB,SAAT,EAAoB;WACbA,SAAL,CAAehe,UAAf,CAA0B8K,WAA1B,CAAsC,KAAKkT,SAA3C;;WACKA,SAAL,GAAiB,IAAjB;;;;SAIJU,gBAAA,uBAAcY,QAAd,EAAwB;;;QAChBC,OAAO,GAAG,KAAKtV,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAACE,IAA3C,IACdF,WAAS,CAACE,IADI,GAEd,EAFF;;QAII,KAAKmU,QAAL,IAAiB,KAAK3M,OAAL,CAAawL,QAAlC,EAA4C;WACrCkB,SAAL,GAAiBthB,QAAQ,CAACyG,aAAT,CAAuB,KAAvB,CAAjB;WACK6a,SAAL,CAAe7P,SAAf,GAA2BvE,WAAS,CAAC2T,QAArC;;UAEIgC,OAAJ,EAAa;aACNvB,SAAL,CAAetT,SAAf,CAAyBgC,GAAzB,CAA6B6S,OAA7B;;;MAGF7iB,QAAQ,CAACiR,IAAT,CAAcqR,WAAd,CAA0B,KAAKhB,SAA/B;MAEA3Y,YAAY,CAAC8B,EAAb,CAAgB,KAAK8C,QAArB,EAA+BlH,OAAK,CAACka,aAArC,EAAoD,UAAAtY,KAAK,EAAI;YACvD,MAAI,CAACwZ,oBAAT,EAA+B;UAC7B,MAAI,CAACA,oBAAL,GAA4B,KAA5B;;;;YAIExZ,KAAK,CAACe,MAAN,KAAiBf,KAAK,CAAC6a,aAA3B,EAA0C;;;;YAItC,MAAI,CAAClO,OAAL,CAAawL,QAAb,KAA0B,QAA9B,EAAwC;UACtC,MAAI,CAAC7S,QAAL,CAAcsC,KAAd;SADF,MAEO;UACL,MAAI,CAAC2K,IAAL;;OAbJ;;UAiBIqI,OAAJ,EAAa;QACX7e,MAAM,CAAC,KAAKsd,SAAN,CAAN;;;WAGGA,SAAL,CAAetT,SAAf,CAAyBgC,GAAzB,CAA6B9C,WAAS,CAACG,IAAvC;;UAEI,CAACuV,QAAL,EAAe;;;;UAIX,CAACC,OAAL,EAAc;QACZD,QAAQ;;;;UAIJG,0BAA0B,GAAGriB,gCAAgC,CAAC,KAAK4gB,SAAN,CAAnE;MAEA3Y,YAAY,CAAC+B,GAAb,CAAiB,KAAK4W,SAAtB,EAAiCniB,cAAjC,EAAiDyjB,QAAjD;MACAnhB,oBAAoB,CAAC,KAAK6f,SAAN,EAAiByB,0BAAjB,CAApB;KA7CF,MA8CO,IAAI,CAAC,KAAKxB,QAAN,IAAkB,KAAKD,SAA3B,EAAsC;WACtCA,SAAL,CAAetT,SAAf,CAAyBC,MAAzB,CAAgCf,WAAS,CAACG,IAA1C;;UAEM2V,cAAc,GAAG,SAAjBA,cAAiB,GAAM;QAC3B,MAAI,CAACL,eAAL;;YACIC,QAAJ,EAAc;UACZA,QAAQ;;OAHZ;;UAOI,KAAKrV,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAACE,IAA3C,CAAJ,EAAsD;YAC9C2V,2BAA0B,GAAGriB,gCAAgC,CAAC,KAAK4gB,SAAN,CAAnE;;QACA3Y,YAAY,CAAC+B,GAAb,CAAiB,KAAK4W,SAAtB,EAAiCniB,cAAjC,EAAiD6jB,cAAjD;QACAvhB,oBAAoB,CAAC,KAAK6f,SAAN,EAAiByB,2BAAjB,CAApB;OAHF,MAIO;QACLC,cAAc;;KAfX,MAiBA,IAAIJ,QAAJ,EAAc;MACnBA,QAAQ;;;;;;;SAQZf,gBAAA,yBAAgB;QACRoB,kBAAkB,GACtB,KAAK1V,QAAL,CAAc2V,YAAd,GAA6BljB,QAAQ,CAAC0D,eAAT,CAAyByf,YADxD;;QAGI,CAAC,KAAK3B,kBAAN,IAA4ByB,kBAAhC,EAAoD;WAC7C1V,QAAL,CAAclK,KAAd,CAAoB+f,WAApB,GAAqC,KAAK1B,eAA1C;;;QAGE,KAAKF,kBAAL,IAA2B,CAACyB,kBAAhC,EAAoD;WAC7C1V,QAAL,CAAclK,KAAd,CAAoBggB,YAApB,GAAsC,KAAK3B,eAA3C;;;;SAIJe,oBAAA,6BAAoB;SACblV,QAAL,CAAclK,KAAd,CAAoB+f,WAApB,GAAkC,EAAlC;SACK7V,QAAL,CAAclK,KAAd,CAAoBggB,YAApB,GAAmC,EAAnC;;;SAGF1B,kBAAA,2BAAkB;QACV7Q,IAAI,GAAG9Q,QAAQ,CAACiR,IAAT,CAAcF,qBAAd,EAAb;SACKyQ,kBAAL,GAA0B1Q,IAAI,CAACK,IAAL,GAAYL,IAAI,CAACwS,KAAjB,GAAyBlkB,MAAM,CAACmkB,UAA1D;SACK7B,eAAL,GAAuB,KAAK8B,kBAAL,EAAvB;;;SAGF5B,gBAAA,yBAAgB;;;QACV,KAAKJ,kBAAT,EAA6B;;;;MAK3Bve,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAAoByH,UAAQ,CAACqU,aAA7B,CAAD,CAAT,CACG1e,OADH,CACW,UAAArC,OAAO,EAAI;YACZsjB,aAAa,GAAGtjB,OAAO,CAACkD,KAAR,CAAcggB,YAApC;YACMK,iBAAiB,GAAGtkB,MAAM,CAACuB,gBAAP,CAAwBR,OAAxB,EAAiC,eAAjC,CAA1B;QACAmQ,WAAW,CAACC,gBAAZ,CAA6BpQ,OAA7B,EAAsC,eAAtC,EAAuDsjB,aAAvD;QACAtjB,OAAO,CAACkD,KAAR,CAAcggB,YAAd,GAAgCtiB,UAAU,CAAC2iB,iBAAD,CAAV,GAAgC,MAAI,CAAChC,eAArE;OALJ,EAL2B;;MAc3Bze,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAAoByH,UAAQ,CAACsU,cAA7B,CAAD,CAAT,CACG3e,OADH,CACW,UAAArC,OAAO,EAAI;YACZwjB,YAAY,GAAGxjB,OAAO,CAACkD,KAAR,CAAcugB,WAAnC;YACMC,gBAAgB,GAAGzkB,MAAM,CAACuB,gBAAP,CAAwBR,OAAxB,EAAiC,cAAjC,CAAzB;QACAmQ,WAAW,CAACC,gBAAZ,CAA6BpQ,OAA7B,EAAsC,cAAtC,EAAsDwjB,YAAtD;QACAxjB,OAAO,CAACkD,KAAR,CAAcugB,WAAd,GAA+B7iB,UAAU,CAAC8iB,gBAAD,CAAV,GAA+B,MAAI,CAACnC,eAAnE;OALJ,EAd2B;;UAuBrB+B,aAAa,GAAGzjB,QAAQ,CAACiR,IAAT,CAAc5N,KAAd,CAAoBggB,YAA1C;UACMK,iBAAiB,GAAGtkB,MAAM,CAACuB,gBAAP,CAAwBX,QAAQ,CAACiR,IAAjC,EAAuC,eAAvC,CAA1B;MAEAX,WAAW,CAACC,gBAAZ,CAA6BvQ,QAAQ,CAACiR,IAAtC,EAA4C,eAA5C,EAA6DwS,aAA7D;MACAzjB,QAAQ,CAACiR,IAAT,CAAc5N,KAAd,CAAoBggB,YAApB,GAAsCtiB,UAAU,CAAC2iB,iBAAD,CAAV,GAAgC,KAAKhC,eAA3E;;;IAGF1hB,QAAQ,CAACiR,IAAT,CAAcjD,SAAd,CAAwBgC,GAAxB,CAA4B9C,WAAS,CAAC4T,IAAtC;;;SAGF4B,kBAAA,2BAAkB;;IAEhBzf,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAAoByH,UAAQ,CAACqU,aAA7B,CAAD,CAAT,CACG1e,OADH,CACW,UAAArC,OAAO,EAAI;UACZ2jB,OAAO,GAAGxT,WAAW,CAACM,gBAAZ,CAA6BzQ,OAA7B,EAAsC,eAAtC,CAAhB;;UACI,OAAO2jB,OAAP,KAAmB,WAAvB,EAAoC;QAClCxT,WAAW,CAACE,mBAAZ,CAAgCrQ,OAAhC,EAAyC,eAAzC;QACAA,OAAO,CAACkD,KAAR,CAAcggB,YAAd,GAA6BS,OAA7B;;KALN,EAFgB;;IAYhB7gB,SAAS,CAACyI,cAAc,CAACtG,IAAf,MAAuByH,UAAQ,CAACsU,cAAhC,CAAD,CAAT,CACG3e,OADH,CACW,UAAArC,OAAO,EAAI;UACZ4jB,MAAM,GAAGzT,WAAW,CAACM,gBAAZ,CAA6BzQ,OAA7B,EAAsC,cAAtC,CAAf;;UACI,OAAO4jB,MAAP,KAAkB,WAAtB,EAAmC;QACjCzT,WAAW,CAACE,mBAAZ,CAAgCrQ,OAAhC,EAAyC,cAAzC;QACAA,OAAO,CAACkD,KAAR,CAAcugB,WAAd,GAA4BG,MAA5B;;KALN,EAZgB;;QAsBVD,OAAO,GAAGxT,WAAW,CAACM,gBAAZ,CAA6B5Q,QAAQ,CAACiR,IAAtC,EAA4C,eAA5C,CAAhB;;QACI,OAAO6S,OAAP,KAAmB,WAAvB,EAAoC;MAClC9jB,QAAQ,CAACiR,IAAT,CAAc5N,KAAd,CAAoBggB,YAApB,GAAmC,EAAnC;KADF,MAEO;MACL/S,WAAW,CAACE,mBAAZ,CAAgCxQ,QAAQ,CAACiR,IAAzC,EAA+C,eAA/C;MACAjR,QAAQ,CAACiR,IAAT,CAAc5N,KAAd,CAAoBggB,YAApB,GAAmCS,OAAnC;;;;SAIJN,qBAAA,8BAAqB;;QACbQ,SAAS,GAAGhkB,QAAQ,CAACyG,aAAT,CAAuB,KAAvB,CAAlB;IACAud,SAAS,CAACvS,SAAV,GAAsBvE,WAAS,CAAC0T,kBAAhC;IACA5gB,QAAQ,CAACiR,IAAT,CAAcqR,WAAd,CAA0B0B,SAA1B;QACMC,cAAc,GAAGD,SAAS,CAACjT,qBAAV,GAAkCmT,KAAlC,GAA0CF,SAAS,CAACG,WAA3E;IACAnkB,QAAQ,CAACiR,IAAT,CAAc7C,WAAd,CAA0B4V,SAA1B;WACOC,cAAP;;;;QAKK5V,mBAAP,0BAAwBjM,MAAxB,EAAgCsV,aAAhC,EAA+C;WACtC,KAAKpJ,IAAL,CAAU,YAAY;UACvB/J,IAAI,GAAGI,IAAI,CAACG,OAAL,CAAa,IAAb,EAAmB4H,UAAnB,CAAX;;UACMkI,OAAO,qBACR9C,SADQ,EAERxB,WAAW,CAACG,iBAAZ,CAA8B,IAA9B,CAFQ,EAGR,OAAOrO,MAAP,KAAkB,QAAlB,IAA8BA,MAA9B,GAAuCA,MAAvC,GAAgD,EAHxC,CAAb;;UAMI,CAACmC,IAAL,EAAW;QACTA,IAAI,GAAG,IAAI6c,KAAJ,CAAU,IAAV,EAAgBxM,OAAhB,CAAP;;;UAGE,OAAOxS,MAAP,KAAkB,QAAtB,EAAgC;YAC1B,OAAOmC,IAAI,CAACnC,MAAD,CAAX,KAAwB,WAA5B,EAAyC;gBACjC,IAAI0W,SAAJ,wBAAkC1W,MAAlC,QAAN;;;QAGFmC,IAAI,CAACnC,MAAD,CAAJ,CAAasV,aAAb;OALF,MAMO,IAAI9C,OAAO,CAAC6F,IAAZ,EAAkB;QACvBlW,IAAI,CAACkW,IAAL,CAAU/C,aAAV;;KAnBG,CAAP;;;QAwBKjJ,eAAP,sBAAoBtO,OAApB,EAA6B;WACpBwE,IAAI,CAACG,OAAL,CAAa3E,OAAb,EAAsBuM,UAAtB,CAAP;;;;;wBA5bmB;aACZD,SAAP;;;;wBAGmB;aACZqF,SAAP;;;;;;;;;;;;;AAicJnJ,YAAY,CAAC8B,EAAb,CAAgBzK,QAAhB,EAA0BqG,OAAK,CAAC4G,cAAhC,EAAgDJ,UAAQ,CAACoC,WAAzD,EAAsE,UAAUhH,KAAV,EAAiB;;;MACjFe,MAAJ;MACM5I,QAAQ,GAAGF,sBAAsB,CAAC,IAAD,CAAvC;;MAEIE,QAAJ,EAAc;IACZ4I,MAAM,GAAG0C,cAAc,CAACpG,OAAf,CAAuBlF,QAAvB,CAAT;;;MAGIgC,MAAM,GAAGuC,IAAI,CAACG,OAAL,CAAakE,MAAb,EAAqB0D,UAArB,IACb,QADa,qBAGR4D,WAAW,CAACG,iBAAZ,CAA8BzH,MAA9B,CAHQ,EAIRsH,WAAW,CAACG,iBAAZ,CAA8B,IAA9B,CAJQ,CAAf;;MAOI,KAAKwG,OAAL,KAAiB,GAAjB,IAAwB,KAAKA,OAAL,KAAiB,MAA7C,EAAqD;IACnDhP,KAAK,CAAC/B,cAAN;;;EAGFyC,YAAY,CAAC+B,GAAb,CAAiB1B,MAAjB,EAAyB3C,OAAK,CAACgH,IAA/B,EAAqC,UAAAmR,SAAS,EAAI;QAC5CA,SAAS,CAACrY,gBAAd,EAAgC;;;;;IAKhCwC,YAAY,CAAC+B,GAAb,CAAiB1B,MAAjB,EAAyB3C,OAAK,CAACgT,MAA/B,EAAuC,YAAM;UACvCjW,SAAS,CAAC,OAAD,CAAb,EAAqB;QACnB,OAAI,CAACyM,KAAL;;KAFJ;GANF;MAaItL,IAAI,GAAGI,IAAI,CAACG,OAAL,CAAakE,MAAb,EAAqB0D,UAArB,CAAX;;MACI,CAACnI,IAAL,EAAW;IACTA,IAAI,GAAG,IAAI6c,KAAJ,CAAUpY,MAAV,EAAkB5G,MAAlB,CAAP;;;EAGFmC,IAAI,CAACkW,IAAL,CAAU,IAAV;CArCF;;;;;;;AA8CA,IAAI,OAAOpP,MAAP,KAAa,WAAjB,EAA8B;MACtBqD,oBAAkB,GAAGrD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,CAA3B;EACAnB,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAa4U,KAAK,CAAC/S,gBAAnB;EACAhD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWmC,WAAX,GAAyByS,KAAzB;;EACA/V,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWoC,UAAX,GAAwB,YAAM;IAC5BvD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAakC,oBAAb;WACO0S,KAAK,CAAC/S,gBAAb;GAFF;;;AChmBF;;;;;;AAOA,AAEA,IAAM+V,QAAQ,GAAG,CACf,YADe,EAEf,MAFe,EAGf,MAHe,EAIf,UAJe,EAKf,UALe,EAMf,QANe,EAOf,KAPe,EAQf,YARe,CAAjB;AAWA,IAAMC,sBAAsB,GAAG,gBAA/B;;;;;;;AAOA,IAAMC,gBAAgB,GAAG,6DAAzB;;;;;;;AAOA,IAAMC,gBAAgB,GAAG,qIAAzB;;AAEA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,IAAD,EAAOC,oBAAP,EAAgC;MACjDC,QAAQ,GAAGF,IAAI,CAACG,QAAL,CAAcjlB,WAAd,EAAjB;;MAEI+kB,oBAAoB,CAAC1a,OAArB,CAA6B2a,QAA7B,MAA2C,CAAC,CAAhD,EAAmD;QAC7CP,QAAQ,CAACpa,OAAT,CAAiB2a,QAAjB,MAA+B,CAAC,CAApC,EAAuC;aAC9B3d,OAAO,CAACyd,IAAI,CAACI,SAAL,CAAenlB,KAAf,CAAqB4kB,gBAArB,KAA0CG,IAAI,CAACI,SAAL,CAAenlB,KAAf,CAAqB6kB,gBAArB,CAA3C,CAAd;;;WAGK,IAAP;;;MAGIO,MAAM,GAAGJ,oBAAoB,CAAC7Y,MAArB,CAA4B,UAAAkZ,SAAS;WAAIA,SAAS,YAAYliB,MAAzB;GAArC,CAAf,CAXuD;;OAclD,IAAIoG,CAAC,GAAG,CAAR,EAAW+b,CAAC,GAAGF,MAAM,CAAC5b,MAA3B,EAAmCD,CAAC,GAAG+b,CAAvC,EAA0C/b,CAAC,EAA3C,EAA+C;QACzC0b,QAAQ,CAACjlB,KAAT,CAAeolB,MAAM,CAAC7b,CAAD,CAArB,CAAJ,EAA+B;aACtB,IAAP;;;;SAIG,KAAP;CApBF;;AAuBA,AAAO,IAAMgc,gBAAgB,GAAG;;OAEzB,CAAC,OAAD,EAAU,KAAV,EAAiB,IAAjB,EAAuB,MAAvB,EAA+B,MAA/B,EAAuCZ,sBAAvC,CAFyB;EAG9Ba,CAAC,EAAE,CAAC,QAAD,EAAW,MAAX,EAAmB,OAAnB,EAA4B,KAA5B,CAH2B;EAI9BC,IAAI,EAAE,EAJwB;EAK9BC,CAAC,EAAE,EAL2B;EAM9BC,EAAE,EAAE,EAN0B;EAO9BC,GAAG,EAAE,EAPyB;EAQ9BC,IAAI,EAAE,EARwB;EAS9BC,GAAG,EAAE,EATyB;EAU9BC,EAAE,EAAE,EAV0B;EAW9BC,EAAE,EAAE,EAX0B;EAY9BC,EAAE,EAAE,EAZ0B;EAa9BC,EAAE,EAAE,EAb0B;EAc9BC,EAAE,EAAE,EAd0B;EAe9BC,EAAE,EAAE,EAf0B;EAgB9BC,EAAE,EAAE,EAhB0B;EAiB9BC,EAAE,EAAE,EAjB0B;EAkB9B/c,CAAC,EAAE,EAlB2B;EAmB9Bgd,GAAG,EAAE,CAAC,KAAD,EAAQ,KAAR,EAAe,OAAf,EAAwB,OAAxB,EAAiC,QAAjC,CAnByB;EAoB9BC,EAAE,EAAE,EApB0B;EAqB9BC,EAAE,EAAE,EArB0B;EAsB9BC,CAAC,EAAE,EAtB2B;EAuB9BC,GAAG,EAAE,EAvByB;EAwB9BC,CAAC,EAAE,EAxB2B;EAyB9BC,KAAK,EAAE,EAzBuB;EA0B9BC,IAAI,EAAE,EA1BwB;EA2B9BC,GAAG,EAAE,EA3ByB;EA4B9BC,GAAG,EAAE,EA5ByB;EA6B9BC,MAAM,EAAE,EA7BsB;EA8B9BC,CAAC,EAAE,EA9B2B;EA+B9BC,EAAE,EAAE;CA/BC;AAkCP,AAAO,SAASC,YAAT,CAAsBC,UAAtB,EAAkCC,SAAlC,EAA6CC,UAA7C,EAAyD;MAC1D,CAACF,UAAU,CAAC7d,MAAhB,EAAwB;WACf6d,UAAP;;;MAGEE,UAAU,IAAI,OAAOA,UAAP,KAAsB,UAAxC,EAAoD;WAC3CA,UAAU,CAACF,UAAD,CAAjB;;;MAGIG,SAAS,GAAG,IAAI9nB,MAAM,CAAC+nB,SAAX,EAAlB;MACMC,eAAe,GAAGF,SAAS,CAACG,eAAV,CAA0BN,UAA1B,EAAsC,WAAtC,CAAxB;MACMO,aAAa,GAAGhlB,MAAM,CAACC,IAAP,CAAYykB,SAAZ,CAAtB;MACMO,QAAQ,GAAGtkB,SAAS,CAACmkB,eAAe,CAACnW,IAAhB,CAAqB5L,gBAArB,CAAsC,GAAtC,CAAD,CAA1B;;6BAES4D,CAdqD,EAc9CM,GAd8C;QAetDie,EAAE,GAAGD,QAAQ,CAACte,CAAD,CAAnB;QACMwe,MAAM,GAAGD,EAAE,CAAC5C,QAAH,CAAYjlB,WAAZ,EAAf;;QAEI2nB,aAAa,CAACtd,OAAd,CAAsByd,MAAtB,MAAkC,CAAC,CAAvC,EAA0C;MACxCD,EAAE,CAAClkB,UAAH,CAAc8K,WAAd,CAA0BoZ,EAA1B;;;;QAKIE,aAAa,GAAGzkB,SAAS,CAACukB,EAAE,CAAC9W,UAAJ,CAA/B;QACMiX,qBAAqB,GAAG,GAAGC,MAAH,CAAUZ,SAAS,CAAC,GAAD,CAAT,IAAkB,EAA5B,EAAgCA,SAAS,CAACS,MAAD,CAAT,IAAqB,EAArD,CAA9B;IAEAC,aAAa,CAACllB,OAAd,CAAsB,UAAAiiB,IAAI,EAAI;UACxB,CAACD,gBAAgB,CAACC,IAAD,EAAOkD,qBAAP,CAArB,EAAoD;QAClDH,EAAE,CAACtgB,eAAH,CAAmBud,IAAI,CAACG,QAAxB;;KAFJ;;;OAbG,IAAI3b,CAAC,GAAG,CAAR,EAAWM,GAAG,GAAGge,QAAQ,CAACre,MAA/B,EAAuCD,CAAC,GAAGM,GAA3C,EAAgDN,CAAC,EAAjD,EAAqD;qBAA5CA,CAA4C,EAArCM,GAAqC;;6BAOjD;;;SAaG6d,eAAe,CAACnW,IAAhB,CAAqB4W,SAA5B;;;AClGF;;;;;;AAMA,IAAMrb,MAAI,GAAG,SAAb;AACA,IAAMC,SAAO,GAAG,OAAhB;AACA,IAAMC,UAAQ,GAAG,YAAjB;AACA,IAAMC,WAAS,SAAOD,UAAtB;AACA,IAAMob,YAAY,GAAG,YAArB;AACA,IAAMC,kBAAkB,GAAG,IAAIllB,MAAJ,aAAqBilB,YAArB,WAAyC,GAAzC,CAA3B;AACA,IAAME,qBAAqB,GAAG,CAAC,UAAD,EAAa,WAAb,EAA0B,YAA1B,CAA9B;AAEA,IAAM3V,aAAW,GAAG;EAClB4V,SAAS,EAAE,SADO;EAElBC,QAAQ,EAAE,QAFQ;EAGlBC,KAAK,EAAE,2BAHW;EAIlBld,OAAO,EAAE,QAJS;EAKlBmd,KAAK,EAAE,iBALW;EAMlBC,IAAI,EAAE,SANY;EAOlBjoB,QAAQ,EAAE,kBAPQ;EAQlBgf,SAAS,EAAE,mBARO;EASlBvO,MAAM,EAAE,0BATU;EAUlB+J,SAAS,EAAE,0BAVO;EAWlB0N,iBAAiB,EAAE,gBAXD;EAYlB1K,QAAQ,EAAE,kBAZQ;EAalB2K,QAAQ,EAAE,SAbQ;EAclBtB,UAAU,EAAE,iBAdM;EAelBD,SAAS,EAAE;CAfb;AAkBA,IAAM5J,eAAa,GAAG;EACpBoL,IAAI,EAAE,MADc;EAEpBnL,GAAG,EAAE,KAFe;EAGpB3K,KAAK,EAAE,OAHa;EAIpB6K,MAAM,EAAE,QAJY;EAKpB9K,IAAI,EAAE;CALR;AAQA,IAAMX,SAAO,GAAG;EACdmW,SAAS,EAAE,IADG;EAEdC,QAAQ,EAAE,yCACQ,mCADR,GAEQ,yCAJJ;EAKdjd,OAAO,EAAE,aALK;EAMdkd,KAAK,EAAE,EANO;EAOdC,KAAK,EAAE,CAPO;EAQdC,IAAI,EAAE,KARQ;EASdjoB,QAAQ,EAAE,KATI;EAUdgf,SAAS,EAAE,KAVG;EAWdvO,MAAM,EAAE,CAXM;EAYd+J,SAAS,EAAE,KAZG;EAad0N,iBAAiB,EAAE,MAbL;EAcd1K,QAAQ,EAAE,cAdI;EAed2K,QAAQ,EAAE,IAfI;EAgBdtB,UAAU,EAAE,IAhBE;EAiBdD,SAAS,EAAE/B;CAjBb;AAoBA,IAAMwD,UAAU,GAAG;EACjBpb,IAAI,EAAE,MADW;EAEjBqb,GAAG,EAAE;CAFP;AAKA,IAAMriB,OAAK,GAAG;EACZ+S,IAAI,WAASzM,WADD;EAEZ0M,MAAM,aAAW1M,WAFL;EAGZU,IAAI,WAASV,WAHD;EAIZwM,KAAK,YAAUxM,WAJH;EAKZgc,QAAQ,eAAahc,WALT;EAMZ4P,KAAK,YAAU5P,WANH;EAOZ0T,OAAO,cAAY1T,WAPP;EAQZic,QAAQ,eAAajc,WART;EASZmG,UAAU,iBAAenG,WATb;EAUZoG,UAAU,iBAAepG;CAV3B;AAaA,IAAMO,WAAS,GAAG;EAChBE,IAAI,EAAE,MADU;EAEhBC,IAAI,EAAE;CAFR;AAKA,IAAMR,UAAQ,GAAG;EACfgc,aAAa,EAAE;CADjB;AAIA,IAAMC,OAAO,GAAG;EACdC,KAAK,EAAE,OADO;EAEdha,KAAK,EAAE,OAFO;EAGdwN,KAAK,EAAE,OAHO;EAIdyM,MAAM,EAAE;;;;;;;CAJV;;IAaMC;;;mBACQ9oB,OAAZ,EAAqBiC,MAArB,EAA6B;;;;;QAKvB,OAAOqc,MAAP,KAAkB,WAAtB,EAAmC;YAC3B,IAAI3F,SAAJ,CAAc,iEAAd,CAAN;KANyB;;;SAUtBoQ,UAAL,GAAkB,IAAlB;SACKC,QAAL,GAAgB,CAAhB;SACKC,WAAL,GAAmB,EAAnB;SACKC,cAAL,GAAsB,EAAtB;SACKtL,OAAL,GAAe,IAAf,CAd2B;;SAiBtB5d,OAAL,GAAeA,OAAf;SACKiC,MAAL,GAAc,KAAKyS,UAAL,CAAgBzS,MAAhB,CAAd;SACKknB,GAAL,GAAW,IAAX;;SAEKC,aAAL;;IACA5kB,IAAI,CAACC,OAAL,CAAazE,OAAb,EAAsB,KAAK8e,WAAL,CAAiBvS,QAAvC,EAAiD,IAAjD;;;;;;;SAmCF8c,SAAA,kBAAS;SACFN,UAAL,GAAkB,IAAlB;;;SAGFO,UAAA,mBAAU;SACHP,UAAL,GAAkB,KAAlB;;;SAGFQ,gBAAA,yBAAgB;SACTR,UAAL,GAAkB,CAAC,KAAKA,UAAxB;;;SAGF5Z,SAAA,gBAAOrH,KAAP,EAAc;QACR,CAAC,KAAKihB,UAAV,EAAsB;;;;QAIlBjhB,KAAJ,EAAW;UACH0hB,OAAO,GAAG,KAAK1K,WAAL,CAAiBvS,QAAjC;UACIqT,OAAO,GAAGpb,IAAI,CAACG,OAAL,CAAamD,KAAK,CAACK,cAAnB,EAAmCqhB,OAAnC,CAAd;;UAEI,CAAC5J,OAAL,EAAc;QACZA,OAAO,GAAG,IAAI,KAAKd,WAAT,CACRhX,KAAK,CAACK,cADE,EAER,KAAKshB,kBAAL,EAFQ,CAAV;QAIAjlB,IAAI,CAACC,OAAL,CAAaqD,KAAK,CAACK,cAAnB,EAAmCqhB,OAAnC,EAA4C5J,OAA5C;;;MAGFA,OAAO,CAACsJ,cAAR,CAAuBQ,KAAvB,GAA+B,CAAC9J,OAAO,CAACsJ,cAAR,CAAuBQ,KAAvD;;UAEI9J,OAAO,CAAC+J,oBAAR,EAAJ,EAAoC;QAClC/J,OAAO,CAACgK,MAAR,CAAe,IAAf,EAAqBhK,OAArB;OADF,MAEO;QACLA,OAAO,CAACiK,MAAR,CAAe,IAAf,EAAqBjK,OAArB;;KAjBJ,MAmBO;UACD,KAAKkK,aAAL,GAAqBjc,SAArB,CAA+BE,QAA/B,CAAwChB,WAAS,CAACG,IAAlD,CAAJ,EAA6D;aACtD2c,MAAL,CAAY,IAAZ,EAAkB,IAAlB;;;;;WAIGD,MAAL,CAAY,IAAZ,EAAkB,IAAlB;;;;SAIJjc,UAAA,mBAAU;IACRiJ,YAAY,CAAC,KAAKoS,QAAN,CAAZ;IAEAxkB,IAAI,CAACI,UAAL,CAAgB,KAAK5E,OAArB,EAA8B,KAAK8e,WAAL,CAAiBvS,QAA/C;IAEA/D,YAAY,CAACC,GAAb,CAAiB,KAAKzI,OAAtB,EAA+B,KAAK8e,WAAL,CAAiBtS,SAAhD;IACAhE,YAAY,CAACC,GAAb,CAAiB8C,cAAc,CAACvG,OAAf,CAAuB,KAAKhF,OAA5B,EAAqC,QAArC,CAAjB,EAAiE,eAAjE,EAAkF,KAAK+pB,iBAAvF;;QAEI,KAAKZ,GAAT,EAAc;WACPA,GAAL,CAAShmB,UAAT,CAAoB8K,WAApB,CAAgC,KAAKkb,GAArC;;;SAGGJ,UAAL,GAAkB,IAAlB;SACKC,QAAL,GAAgB,IAAhB;SACKC,WAAL,GAAmB,IAAnB;SACKC,cAAL,GAAsB,IAAtB;;QACI,KAAKtL,OAAL,KAAiB,IAArB,EAA2B;WACpBA,OAAL,CAAac,OAAb;;;SAGGd,OAAL,GAAe,IAAf;SACK5d,OAAL,GAAe,IAAf;SACKiC,MAAL,GAAc,IAAd;SACKknB,GAAL,GAAW,IAAX;;;SAGF7O,OAAA,gBAAO;;;QACD,KAAKta,OAAL,CAAakD,KAAb,CAAmBE,OAAnB,KAA+B,MAAnC,EAA2C;YACnC,IAAIR,KAAJ,CAAU,qCAAV,CAAN;;;QAGE,KAAKonB,aAAL,MAAwB,KAAKjB,UAAjC,EAA6C;UACrC1K,SAAS,GAAG7V,YAAY,CAACsC,OAAb,CAAqB,KAAK9K,OAA1B,EAAmC,KAAK8e,WAAL,CAAiB5Y,KAAjB,CAAuBgH,IAA1D,CAAlB;UACM+c,UAAU,GAAG3mB,cAAc,CAAC,KAAKtD,OAAN,CAAjC;UACMkqB,UAAU,GAAGD,UAAU,KAAK,IAAf,GACjB,KAAKjqB,OAAL,CAAamqB,aAAb,CAA2B5mB,eAA3B,CAA2CwK,QAA3C,CAAoD,KAAK/N,OAAzD,CADiB,GAEjBiqB,UAAU,CAAClc,QAAX,CAAoB,KAAK/N,OAAzB,CAFF;;UAIIqe,SAAS,CAACrY,gBAAV,IAA8B,CAACkkB,UAAnC,EAA+C;;;;UAIzCf,GAAG,GAAG,KAAKW,aAAL,EAAZ;UACMM,KAAK,GAAG3qB,MAAM,CAAC,KAAKqf,WAAL,CAAiBzS,IAAlB,CAApB;MAEA8c,GAAG,CAACxZ,YAAJ,CAAiB,IAAjB,EAAuBya,KAAvB;WACKpqB,OAAL,CAAa2P,YAAb,CAA0B,kBAA1B,EAA8Cya,KAA9C;WAEKC,UAAL;;UAEI,KAAKpoB,MAAL,CAAY6lB,SAAhB,EAA2B;QACzBqB,GAAG,CAACtb,SAAJ,CAAcgC,GAAd,CAAkB9C,WAAS,CAACE,IAA5B;;;UAGIgS,SAAS,GAAG,OAAO,KAAKhd,MAAL,CAAYgd,SAAnB,KAAiC,UAAjC,GAChB,KAAKhd,MAAL,CAAYgd,SAAZ,CAAsB3f,IAAtB,CAA2B,IAA3B,EAAiC6pB,GAAjC,EAAsC,KAAKnpB,OAA3C,CADgB,GAEhB,KAAKiC,MAAL,CAAYgd,SAFd;;UAIMqL,UAAU,GAAG,KAAKC,cAAL,CAAoBtL,SAApB,CAAnB;;WACKuL,kBAAL,CAAwBF,UAAxB;;UAEM7P,SAAS,GAAG,KAAKgQ,aAAL,EAAlB;;MACAjmB,IAAI,CAACC,OAAL,CAAa0kB,GAAb,EAAkB,KAAKrK,WAAL,CAAiBvS,QAAnC,EAA6C,IAA7C;;UAEI,CAAC,KAAKvM,OAAL,CAAamqB,aAAb,CAA2B5mB,eAA3B,CAA2CwK,QAA3C,CAAoD,KAAKob,GAAzD,CAAL,EAAoE;QAClE1O,SAAS,CAAC0H,WAAV,CAAsBgH,GAAtB;;;MAGF3gB,YAAY,CAACsC,OAAb,CAAqB,KAAK9K,OAA1B,EAAmC,KAAK8e,WAAL,CAAiB5Y,KAAjB,CAAuBsiB,QAA1D;WAEK5K,OAAL,GAAe,IAAIU,MAAJ,CAAW,KAAKte,OAAhB,EAAyBmpB,GAAzB,EAA8B;QAC3ClK,SAAS,EAAEqL,UADgC;QAE3CjL,SAAS,EAAE;UACT3O,MAAM,EAAE,KAAKwO,UAAL,EADC;UAET1B,IAAI,EAAE;YACJkN,QAAQ,EAAE,KAAKzoB,MAAL,CAAYkmB;WAHf;UAKTwC,KAAK,EAAE;YACL3qB,OAAO,QAAM,KAAK8e,WAAL,CAAiBzS,IAAvB;WANA;UAQTkT,eAAe,EAAE;YACfC,iBAAiB,EAAE,KAAKvd,MAAL,CAAYwb;;SAXQ;QAc3CmN,QAAQ,EAAE,kBAAAxmB,IAAI,EAAI;cACZA,IAAI,CAACymB,iBAAL,KAA2BzmB,IAAI,CAAC6a,SAApC,EAA+C;YAC7C,KAAI,CAAC6L,4BAAL,CAAkC1mB,IAAlC;;SAhBuC;QAmB3C2mB,QAAQ,EAAE,kBAAA3mB,IAAI;iBAAI,KAAI,CAAC0mB,4BAAL,CAAkC1mB,IAAlC,CAAJ;;OAnBD,CAAf;MAsBA+kB,GAAG,CAACtb,SAAJ,CAAcgC,GAAd,CAAkB9C,WAAS,CAACG,IAA5B,EA7D2C;;;;;UAmEvC,kBAAkBrN,QAAQ,CAAC0D,eAA/B,EAAgD;QAC9CT,SAAS,CAACjD,QAAQ,CAACiR,IAAT,CAAcrF,QAAf,CAAT,CAAkCpJ,OAAlC,CAA0C,UAAArC,OAAO,EAAI;UACnDwI,YAAY,CAAC8B,EAAb,CAAgBtK,OAAhB,EAAyB,WAAzB,EAAsC4D,IAAI,EAA1C;SADF;;;UAKIqX,QAAQ,GAAG,SAAXA,QAAW,GAAM;YACjB,KAAI,CAAChZ,MAAL,CAAY6lB,SAAhB,EAA2B;UACzB,KAAI,CAACkD,cAAL;;;YAGIC,cAAc,GAAG,KAAI,CAAChC,WAA5B;QACA,KAAI,CAACA,WAAL,GAAmB,IAAnB;QAEAzgB,YAAY,CAACsC,OAAb,CAAqB,KAAI,CAAC9K,OAA1B,EAAmC,KAAI,CAAC8e,WAAL,CAAiB5Y,KAAjB,CAAuB8S,KAA1D;;YAEIiS,cAAc,KAAK3C,UAAU,CAACC,GAAlC,EAAuC;UACrC,KAAI,CAACsB,MAAL,CAAY,IAAZ,EAAkB,KAAlB;;OAXJ;;UAeI,KAAKV,GAAL,CAAStb,SAAT,CAAmBE,QAAnB,CAA4BhB,WAAS,CAACE,IAAtC,CAAJ,EAAiD;YACzCxM,kBAAkB,GAAGF,gCAAgC,CAAC,KAAK4oB,GAAN,CAA3D;QACA3gB,YAAY,CAAC+B,GAAb,CAAiB,KAAK4e,GAAtB,EAA2BnqB,cAA3B,EAA2Cic,QAA3C;QACA3Z,oBAAoB,CAAC,KAAK6nB,GAAN,EAAW1oB,kBAAX,CAApB;OAHF,MAIO;QACLwa,QAAQ;;;;;SAKdZ,OAAA,cAAKoI,QAAL,EAAe;;;QACP0G,GAAG,GAAG,KAAKW,aAAL,EAAZ;;QACM7O,QAAQ,GAAG,SAAXA,QAAW,GAAM;UACjB,MAAI,CAACgO,WAAL,KAAqBX,UAAU,CAACpb,IAAhC,IAAwCic,GAAG,CAAChmB,UAAhD,EAA4D;QAC1DgmB,GAAG,CAAChmB,UAAJ,CAAe8K,WAAf,CAA2Bkb,GAA3B;;;MAGF,MAAI,CAAC+B,cAAL;;MACA,MAAI,CAAClrB,OAAL,CAAa+G,eAAb,CAA6B,kBAA7B;;MACAyB,YAAY,CAACsC,OAAb,CAAqB,MAAI,CAAC9K,OAA1B,EAAmC,MAAI,CAAC8e,WAAL,CAAiB5Y,KAAjB,CAAuBgT,MAA1D;;UACI,MAAI,CAAC0E,OAAL,KAAiB,IAArB,EAA2B;QACzB,MAAI,CAACA,OAAL,CAAac,OAAb;;;UAGE+D,QAAJ,EAAc;QACZA,QAAQ;;KAbZ;;QAiBMhE,SAAS,GAAGjW,YAAY,CAACsC,OAAb,CAAqB,KAAK9K,OAA1B,EAAmC,KAAK8e,WAAL,CAAiB5Y,KAAjB,CAAuB+S,IAA1D,CAAlB;;QACIwF,SAAS,CAACzY,gBAAd,EAAgC;;;;IAIhCmjB,GAAG,CAACtb,SAAJ,CAAcC,MAAd,CAAqBf,WAAS,CAACG,IAA/B,EAxBa;;;QA4BT,kBAAkBrN,QAAQ,CAAC0D,eAA/B,EAAgD;MAC9CT,SAAS,CAACjD,QAAQ,CAACiR,IAAT,CAAcrF,QAAf,CAAT,CACGpJ,OADH,CACW,UAAArC,OAAO;eAAIwI,YAAY,CAACC,GAAb,CAAiBzI,OAAjB,EAA0B,WAA1B,EAAuC4D,IAAvC,CAAJ;OADlB;;;SAIGslB,cAAL,CAAoBP,OAAO,CAACvM,KAA5B,IAAqC,KAArC;SACK8M,cAAL,CAAoBP,OAAO,CAAC/Z,KAA5B,IAAqC,KAArC;SACKsa,cAAL,CAAoBP,OAAO,CAACC,KAA5B,IAAqC,KAArC;;QAEI,KAAKO,GAAL,CAAStb,SAAT,CAAmBE,QAAnB,CAA4BhB,WAAS,CAACE,IAAtC,CAAJ,EAAiD;UACzCxM,kBAAkB,GAAGF,gCAAgC,CAAC4oB,GAAD,CAA3D;MAEA3gB,YAAY,CAAC+B,GAAb,CAAiB4e,GAAjB,EAAsBnqB,cAAtB,EAAsCic,QAAtC;MACA3Z,oBAAoB,CAAC6nB,GAAD,EAAM1oB,kBAAN,CAApB;KAJF,MAKO;MACLwa,QAAQ;;;SAGLgO,WAAL,GAAmB,EAAnB;;;SAGFtK,SAAA,kBAAS;QACH,KAAKf,OAAL,KAAiB,IAArB,EAA2B;WACpBA,OAAL,CAAagB,cAAb;;;;;SAMJoL,gBAAA,yBAAgB;WACPnjB,OAAO,CAAC,KAAKskB,QAAL,EAAD,CAAd;;;SAGFX,qBAAA,4BAAmBF,UAAnB,EAA+B;SACxBR,aAAL,GAAqBjc,SAArB,CAA+BgC,GAA/B,CAAsC8X,YAAtC,SAAsD2C,UAAtD;;;SAGFR,gBAAA,yBAAgB;QACV,KAAKX,GAAT,EAAc;aACL,KAAKA,GAAZ;;;QAGInpB,OAAO,GAAGH,QAAQ,CAACyG,aAAT,CAAuB,KAAvB,CAAhB;IACAtG,OAAO,CAAC0nB,SAAR,GAAoB,KAAKzlB,MAAL,CAAY8lB,QAAhC;SAEKoB,GAAL,GAAWnpB,OAAO,CAACyL,QAAR,CAAiB,CAAjB,CAAX;WACO,KAAK0d,GAAZ;;;SAGFkB,aAAA,sBAAa;QACLlB,GAAG,GAAG,KAAKW,aAAL,EAAZ;SACKsB,iBAAL,CAAuB7f,cAAc,CAACpG,OAAf,CAAuBuH,UAAQ,CAACgc,aAAhC,EAA+CS,GAA/C,CAAvB,EAA4E,KAAKgC,QAAL,EAA5E;IACAhC,GAAG,CAACtb,SAAJ,CAAcC,MAAd,CAAqBf,WAAS,CAACE,IAA/B;IACAkc,GAAG,CAACtb,SAAJ,CAAcC,MAAd,CAAqBf,WAAS,CAACG,IAA/B;;;SAGFke,oBAAA,2BAAkBprB,OAAlB,EAA2BqrB,OAA3B,EAAoC;QAC9BrrB,OAAO,KAAK,IAAhB,EAAsB;;;;QAIlB,OAAOqrB,OAAP,KAAmB,QAAnB,KAAgCA,OAAO,CAAChqB,QAAR,IAAoBgqB,OAAO,CAAC9P,MAA5D,CAAJ,EAAyE;UACnE8P,OAAO,CAAC9P,MAAZ,EAAoB;QAClB8P,OAAO,GAAGA,OAAO,CAAC,CAAD,CAAjB;OAFqE;;;UAMnE,KAAKppB,MAAL,CAAYimB,IAAhB,EAAsB;YAChBmD,OAAO,CAACloB,UAAR,KAAuBnD,OAA3B,EAAoC;UAClCA,OAAO,CAAC0nB,SAAR,GAAoB,EAApB;UACA1nB,OAAO,CAACmiB,WAAR,CAAoBkJ,OAApB;;OAHJ,MAKO;QACLrrB,OAAO,CAACsrB,SAAR,GAAoBD,OAAO,CAACE,WAA5B;;;;;;QAMA,KAAKtpB,MAAL,CAAYimB,IAAhB,EAAsB;UAChB,KAAKjmB,MAAL,CAAYmmB,QAAhB,EAA0B;QACxBiD,OAAO,GAAG1E,YAAY,CAAC0E,OAAD,EAAU,KAAKppB,MAAL,CAAY4kB,SAAtB,EAAiC,KAAK5kB,MAAL,CAAY6kB,UAA7C,CAAtB;;;MAGF9mB,OAAO,CAAC0nB,SAAR,GAAoB2D,OAApB;KALF,MAMO;MACLrrB,OAAO,CAACsrB,SAAR,GAAoBD,OAApB;;;;SAIJF,WAAA,oBAAW;QACLnD,KAAK,GAAG,KAAKhoB,OAAL,CAAaE,YAAb,CAA0B,qBAA1B,CAAZ;;QAEI,CAAC8nB,KAAL,EAAY;MACVA,KAAK,GAAG,OAAO,KAAK/lB,MAAL,CAAY+lB,KAAnB,KAA6B,UAA7B,GACN,KAAK/lB,MAAL,CAAY+lB,KAAZ,CAAkB1oB,IAAlB,CAAuB,KAAKU,OAA5B,CADM,GAEN,KAAKiC,MAAL,CAAY+lB,KAFd;;;WAKKA,KAAP;;;;SAKF9I,aAAA,sBAAa;;;QACLxO,MAAM,GAAG,EAAf;;QAEI,OAAO,KAAKzO,MAAL,CAAYyO,MAAnB,KAA8B,UAAlC,EAA8C;MAC5CA,MAAM,CAACrI,EAAP,GAAY,UAAAjE,IAAI,EAAI;QAClBA,IAAI,CAAC+a,OAAL,qBACK/a,IAAI,CAAC+a,OADV,EAEK,MAAI,CAACld,MAAL,CAAYyO,MAAZ,CAAmBtM,IAAI,CAAC+a,OAAxB,EAAiC,MAAI,CAACnf,OAAtC,KAAkD,EAFvD;eAKOoE,IAAP;OANF;KADF,MASO;MACLsM,MAAM,CAACA,MAAP,GAAgB,KAAKzO,MAAL,CAAYyO,MAA5B;;;WAGKA,MAAP;;;SAGF+Z,gBAAA,yBAAgB;QACV,KAAKxoB,MAAL,CAAYwY,SAAZ,KAA0B,KAA9B,EAAqC;aAC5B5a,QAAQ,CAACiR,IAAhB;;;QAGE1P,SAAS,CAAC,KAAKa,MAAL,CAAYwY,SAAb,CAAb,EAAsC;aAC7B,KAAKxY,MAAL,CAAYwY,SAAnB;;;WAGKlP,cAAc,CAACpG,OAAf,CAAuB,KAAKlD,MAAL,CAAYwY,SAAnC,CAAP;;;SAGF8P,iBAAA,wBAAetL,SAAf,EAA0B;WACjBhC,eAAa,CAACgC,SAAS,CAACpc,WAAV,EAAD,CAApB;;;SAGFumB,gBAAA,yBAAgB;;;QACRoC,QAAQ,GAAG,KAAKvpB,MAAL,CAAY6I,OAAZ,CAAoBhK,KAApB,CAA0B,GAA1B,CAAjB;IAEA0qB,QAAQ,CAACnpB,OAAT,CAAiB,UAAAyI,OAAO,EAAI;UACtBA,OAAO,KAAK,OAAhB,EAAyB;QACvBtC,YAAY,CAAC8B,EAAb,CAAgB,MAAI,CAACtK,OAArB,EACE,MAAI,CAAC8e,WAAL,CAAiB5Y,KAAjB,CAAuBkW,KADzB,EAEE,MAAI,CAACna,MAAL,CAAYhC,QAFd,EAGE,UAAA6H,KAAK;iBAAI,MAAI,CAACqH,MAAL,CAAYrH,KAAZ,CAAJ;SAHP;OADF,MAMO,IAAIgD,OAAO,KAAK6d,OAAO,CAACE,MAAxB,EAAgC;YAC/B4C,OAAO,GAAG3gB,OAAO,KAAK6d,OAAO,CAACC,KAApB,GACd,MAAI,CAAC9J,WAAL,CAAiB5Y,KAAjB,CAAuByM,UADT,GAEd,MAAI,CAACmM,WAAL,CAAiB5Y,KAAjB,CAAuBga,OAFzB;YAGMwL,QAAQ,GAAG5gB,OAAO,KAAK6d,OAAO,CAACC,KAApB,GACf,MAAI,CAAC9J,WAAL,CAAiB5Y,KAAjB,CAAuB0M,UADR,GAEf,MAAI,CAACkM,WAAL,CAAiB5Y,KAAjB,CAAuBuiB,QAFzB;QAIAjgB,YAAY,CAAC8B,EAAb,CAAgB,MAAI,CAACtK,OAArB,EACEyrB,OADF,EAEE,MAAI,CAACxpB,MAAL,CAAYhC,QAFd,EAGE,UAAA6H,KAAK;iBAAI,MAAI,CAAC8hB,MAAL,CAAY9hB,KAAZ,CAAJ;SAHP;QAKAU,YAAY,CAAC8B,EAAb,CAAgB,MAAI,CAACtK,OAArB,EACE0rB,QADF,EAEE,MAAI,CAACzpB,MAAL,CAAYhC,QAFd,EAGE,UAAA6H,KAAK;iBAAI,MAAI,CAAC+hB,MAAL,CAAY/hB,KAAZ,CAAJ;SAHP;;KApBJ;;SA4BKiiB,iBAAL,GAAyB,YAAM;UACzB,MAAI,CAAC/pB,OAAT,EAAkB;QAChB,MAAI,CAACqa,IAAL;;KAFJ;;IAMA7R,YAAY,CAAC8B,EAAb,CAAgBiB,cAAc,CAACvG,OAAf,CAAuB,KAAKhF,OAA5B,EAAqC,QAArC,CAAhB,EACE,eADF,EAEE,KAAK+pB,iBAFP;;QAKI,KAAK9nB,MAAL,CAAYhC,QAAhB,EAA0B;WACnBgC,MAAL,qBACK,KAAKA,MADV;QAEE6I,OAAO,EAAE,QAFX;QAGE7K,QAAQ,EAAE;;KAJd,MAMO;WACA0rB,SAAL;;;;SAIJA,YAAA,qBAAY;QACJC,SAAS,GAAG,OAAO,KAAK5rB,OAAL,CAAaE,YAAb,CAA0B,qBAA1B,CAAzB;;QAEI,KAAKF,OAAL,CAAaE,YAAb,CAA0B,OAA1B,KAAsC0rB,SAAS,KAAK,QAAxD,EAAkE;WAC3D5rB,OAAL,CAAa2P,YAAb,CACE,qBADF,EAEE,KAAK3P,OAAL,CAAaE,YAAb,CAA0B,OAA1B,KAAsC,EAFxC;WAKKF,OAAL,CAAa2P,YAAb,CAA0B,OAA1B,EAAmC,EAAnC;;;;SAIJia,SAAA,gBAAO9hB,KAAP,EAAc8X,OAAd,EAAuB;QACf4J,OAAO,GAAG,KAAK1K,WAAL,CAAiBvS,QAAjC;IACAqT,OAAO,GAAGA,OAAO,IAAIpb,IAAI,CAACG,OAAL,CAAamD,KAAK,CAACK,cAAnB,EAAmCqhB,OAAnC,CAArB;;QAEI,CAAC5J,OAAL,EAAc;MACZA,OAAO,GAAG,IAAI,KAAKd,WAAT,CACRhX,KAAK,CAACK,cADE,EAER,KAAKshB,kBAAL,EAFQ,CAAV;MAIAjlB,IAAI,CAACC,OAAL,CAAaqD,KAAK,CAACK,cAAnB,EAAmCqhB,OAAnC,EAA4C5J,OAA5C;;;QAGE9X,KAAJ,EAAW;MACT8X,OAAO,CAACsJ,cAAR,CACEphB,KAAK,CAACE,IAAN,KAAe,SAAf,GAA2B2gB,OAAO,CAAC/Z,KAAnC,GAA2C+Z,OAAO,CAACC,KADrD,IAEI,IAFJ;;;QAKEhJ,OAAO,CAACkK,aAAR,GAAwBjc,SAAxB,CAAkCE,QAAlC,CAA2ChB,WAAS,CAACG,IAArD,KACA0S,OAAO,CAACqJ,WAAR,KAAwBX,UAAU,CAACpb,IADvC,EAC6C;MAC3C0S,OAAO,CAACqJ,WAAR,GAAsBX,UAAU,CAACpb,IAAjC;;;;IAIF0J,YAAY,CAACgJ,OAAO,CAACoJ,QAAT,CAAZ;IAEApJ,OAAO,CAACqJ,WAAR,GAAsBX,UAAU,CAACpb,IAAjC;;QAEI,CAAC0S,OAAO,CAAC3d,MAAR,CAAegmB,KAAhB,IAAyB,CAACrI,OAAO,CAAC3d,MAAR,CAAegmB,KAAf,CAAqB3N,IAAnD,EAAyD;MACvDsF,OAAO,CAACtF,IAAR;;;;IAIFsF,OAAO,CAACoJ,QAAR,GAAmBlnB,UAAU,CAAC,YAAM;UAC9B8d,OAAO,CAACqJ,WAAR,KAAwBX,UAAU,CAACpb,IAAvC,EAA6C;QAC3C0S,OAAO,CAACtF,IAAR;;KAFyB,EAI1BsF,OAAO,CAAC3d,MAAR,CAAegmB,KAAf,CAAqB3N,IAJK,CAA7B;;;SAOFuP,SAAA,gBAAO/hB,KAAP,EAAc8X,OAAd,EAAuB;QACf4J,OAAO,GAAG,KAAK1K,WAAL,CAAiBvS,QAAjC;IACAqT,OAAO,GAAGA,OAAO,IAAIpb,IAAI,CAACG,OAAL,CAAamD,KAAK,CAACK,cAAnB,EAAmCqhB,OAAnC,CAArB;;QAEI,CAAC5J,OAAL,EAAc;MACZA,OAAO,GAAG,IAAI,KAAKd,WAAT,CACRhX,KAAK,CAACK,cADE,EAER,KAAKshB,kBAAL,EAFQ,CAAV;MAIAjlB,IAAI,CAACC,OAAL,CAAaqD,KAAK,CAACK,cAAnB,EAAmCqhB,OAAnC,EAA4C5J,OAA5C;;;QAGE9X,KAAJ,EAAW;MACT8X,OAAO,CAACsJ,cAAR,CACEphB,KAAK,CAACE,IAAN,KAAe,UAAf,GAA4B2gB,OAAO,CAAC/Z,KAApC,GAA4C+Z,OAAO,CAACC,KADtD,IAEI,KAFJ;;;QAKEhJ,OAAO,CAAC+J,oBAAR,EAAJ,EAAoC;;;;IAIpC/S,YAAY,CAACgJ,OAAO,CAACoJ,QAAT,CAAZ;IAEApJ,OAAO,CAACqJ,WAAR,GAAsBX,UAAU,CAACC,GAAjC;;QAEI,CAAC3I,OAAO,CAAC3d,MAAR,CAAegmB,KAAhB,IAAyB,CAACrI,OAAO,CAAC3d,MAAR,CAAegmB,KAAf,CAAqB5N,IAAnD,EAAyD;MACvDuF,OAAO,CAACvF,IAAR;;;;IAIFuF,OAAO,CAACoJ,QAAR,GAAmBlnB,UAAU,CAAC,YAAM;UAC9B8d,OAAO,CAACqJ,WAAR,KAAwBX,UAAU,CAACC,GAAvC,EAA4C;QAC1C3I,OAAO,CAACvF,IAAR;;KAFyB,EAI1BuF,OAAO,CAAC3d,MAAR,CAAegmB,KAAf,CAAqB5N,IAJK,CAA7B;;;SAOFsP,uBAAA,gCAAuB;SAChB,IAAM7e,OAAX,IAAsB,KAAKoe,cAA3B,EAA2C;UACrC,KAAKA,cAAL,CAAoBpe,OAApB,CAAJ,EAAkC;eACzB,IAAP;;;;WAIG,KAAP;;;SAGF4J,aAAA,oBAAWzS,MAAX,EAAmB;QACX4pB,cAAc,GAAG1b,WAAW,CAACG,iBAAZ,CAA8B,KAAKtQ,OAAnC,CAAvB;IAEAmC,MAAM,CAACC,IAAP,CAAYypB,cAAZ,EACGxpB,OADH,CACW,UAAAypB,QAAQ,EAAI;UACfjE,qBAAqB,CAAChe,OAAtB,CAA8BiiB,QAA9B,MAA4C,CAAC,CAAjD,EAAoD;eAC3CD,cAAc,CAACC,QAAD,CAArB;;KAHN;;QAOI7pB,MAAM,IAAI,OAAOA,MAAM,CAACwY,SAAd,KAA4B,QAAtC,IAAkDxY,MAAM,CAACwY,SAAP,CAAiBc,MAAvE,EAA+E;MAC7EtZ,MAAM,CAACwY,SAAP,GAAmBxY,MAAM,CAACwY,SAAP,CAAiB,CAAjB,CAAnB;;;IAGFxY,MAAM,qBACD,KAAK6c,WAAL,CAAiBnN,OADhB,EAEDka,cAFC,EAGD,OAAO5pB,MAAP,KAAkB,QAAlB,IAA8BA,MAA9B,GAAuCA,MAAvC,GAAgD,EAH/C,CAAN;;QAMI,OAAOA,MAAM,CAACgmB,KAAd,KAAwB,QAA5B,EAAsC;MACpChmB,MAAM,CAACgmB,KAAP,GAAe;QACb3N,IAAI,EAAErY,MAAM,CAACgmB,KADA;QAEb5N,IAAI,EAAEpY,MAAM,CAACgmB;OAFf;;;QAME,OAAOhmB,MAAM,CAAC+lB,KAAd,KAAwB,QAA5B,EAAsC;MACpC/lB,MAAM,CAAC+lB,KAAP,GAAe/lB,MAAM,CAAC+lB,KAAP,CAAa3oB,QAAb,EAAf;;;QAGE,OAAO4C,MAAM,CAACopB,OAAd,KAA0B,QAA9B,EAAwC;MACtCppB,MAAM,CAACopB,OAAP,GAAiBppB,MAAM,CAACopB,OAAP,CAAehsB,QAAf,EAAjB;;;IAGF0C,eAAe,CACbsK,MADa,EAEbpK,MAFa,EAGb,KAAK6c,WAAL,CAAiB5M,WAHJ,CAAf;;QAMIjQ,MAAM,CAACmmB,QAAX,EAAqB;MACnBnmB,MAAM,CAAC8lB,QAAP,GAAkBpB,YAAY,CAAC1kB,MAAM,CAAC8lB,QAAR,EAAkB9lB,MAAM,CAAC4kB,SAAzB,EAAoC5kB,MAAM,CAAC6kB,UAA3C,CAA9B;;;WAGK7kB,MAAP;;;SAGFwnB,qBAAA,8BAAqB;QACbxnB,MAAM,GAAG,EAAf;;QAEI,KAAKA,MAAT,EAAiB;WACV,IAAMkC,GAAX,IAAkB,KAAKlC,MAAvB,EAA+B;YACzB,KAAK6c,WAAL,CAAiBnN,OAAjB,CAAyBxN,GAAzB,MAAkC,KAAKlC,MAAL,CAAYkC,GAAZ,CAAtC,EAAwD;UACtDlC,MAAM,CAACkC,GAAD,CAAN,GAAc,KAAKlC,MAAL,CAAYkC,GAAZ,CAAd;;;;;WAKClC,MAAP;;;SAGFipB,iBAAA,0BAAiB;QACT/B,GAAG,GAAG,KAAKW,aAAL,EAAZ;QACMiC,QAAQ,GAAG5C,GAAG,CAACjpB,YAAJ,CAAiB,OAAjB,EAA0BX,KAA1B,CAAgCqoB,kBAAhC,CAAjB;;QACImE,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,CAAChjB,MAAlC,EAA0C;MACxCgjB,QAAQ,CACLC,GADH,CACO,UAAAC,KAAK;eAAIA,KAAK,CAAC7rB,IAAN,EAAJ;OADZ,EAEGiC,OAFH,CAEW,UAAA6pB,MAAM;eAAI/C,GAAG,CAACtb,SAAJ,CAAcC,MAAd,CAAqBoe,MAArB,CAAJ;OAFjB;;;;SAMJpB,+BAAA,sCAA6BqB,UAA7B,EAAyC;QACjCC,cAAc,GAAGD,UAAU,CAACznB,QAAlC;SACKykB,GAAL,GAAWiD,cAAc,CAACC,MAA1B;;SACKnB,cAAL;;SACKV,kBAAL,CAAwB,KAAKD,cAAL,CAAoB4B,UAAU,CAAClN,SAA/B,CAAxB;;;SAGF+L,iBAAA,0BAAiB;QACT7B,GAAG,GAAG,KAAKW,aAAL,EAAZ;QACMwC,mBAAmB,GAAG,KAAKrqB,MAAL,CAAY6lB,SAAxC;;QACIqB,GAAG,CAACjpB,YAAJ,CAAiB,aAAjB,MAAoC,IAAxC,EAA8C;;;;IAI9CipB,GAAG,CAACtb,SAAJ,CAAcC,MAAd,CAAqBf,WAAS,CAACE,IAA/B;SACKhL,MAAL,CAAY6lB,SAAZ,GAAwB,KAAxB;SACKzN,IAAL;SACKC,IAAL;SACKrY,MAAL,CAAY6lB,SAAZ,GAAwBwE,mBAAxB;;;;UAKKpe,mBAAP,0BAAwBjM,MAAxB,EAAgC;WACvB,KAAKkM,IAAL,CAAU,YAAY;UACvB/J,IAAI,GAAGI,IAAI,CAACG,OAAL,CAAa,IAAb,EAAmB4H,UAAnB,CAAX;;UACMkI,OAAO,GAAG,OAAOxS,MAAP,KAAkB,QAAlB,IAA8BA,MAA9C;;UAEI,CAACmC,IAAD,IAAS,eAAezB,IAAf,CAAoBV,MAApB,CAAb,EAA0C;;;;UAItC,CAACmC,IAAL,EAAW;QACTA,IAAI,GAAG,IAAI0kB,OAAJ,CAAY,IAAZ,EAAkBrU,OAAlB,CAAP;;;UAGE,OAAOxS,MAAP,KAAkB,QAAtB,EAAgC;YAC1B,OAAOmC,IAAI,CAACnC,MAAD,CAAX,KAAwB,WAA5B,EAAyC;gBACjC,IAAI0W,SAAJ,wBAAkC1W,MAAlC,QAAN;;;QAGFmC,IAAI,CAACnC,MAAD,CAAJ;;KAjBG,CAAP;;;UAsBKqM,eAAP,sBAAoBtO,OAApB,EAA6B;WACpBwE,IAAI,CAACG,OAAL,CAAa3E,OAAb,EAAsBuM,UAAtB,CAAP;;;;;wBAroBmB;aACZD,SAAP;;;;wBAGmB;aACZqF,SAAP;;;;wBAGgB;aACTtF,MAAP;;;;wBAGoB;aACbE,UAAP;;;;wBAGiB;aACVrG,OAAP;;;;wBAGqB;aACdsG,WAAP;;;;wBAGuB;aAChB0F,aAAP;;;;;;;;;;;;;;AAunBJ,IAAI,OAAOhH,MAAP,KAAa,WAAjB,EAA8B;MACtBqD,oBAAkB,GAAGrD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,CAA3B;EACAnB,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAayc,OAAO,CAAC5a,gBAArB;EACAhD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWmC,WAAX,GAAyBsa,OAAzB;;EACA5d,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWoC,UAAX,GAAwB,YAAM;IAC5BvD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAakC,oBAAb;WACOua,OAAO,CAAC5a,gBAAf;GAFF;;;ACryBF;;;;;;AAMA,IAAM7B,MAAI,GAAG,SAAb;AACA,IAAMC,SAAO,GAAG,OAAhB;AACA,IAAMC,UAAQ,GAAG,YAAjB;AACA,IAAMC,WAAS,SAAOD,UAAtB;AACA,IAAMob,cAAY,GAAG,YAArB;AACA,IAAMC,oBAAkB,GAAG,IAAIllB,MAAJ,aAAqBilB,cAArB,WAAyC,GAAzC,CAA3B;;AAEA,IAAMhW,SAAO,qBACRmX,OAAO,CAACnX,OADA;EAEXsN,SAAS,EAAE,OAFA;EAGXnU,OAAO,EAAE,OAHE;EAIXugB,OAAO,EAAE,EAJE;EAKXtD,QAAQ,EAAE,yCACE,mCADF,GAEE,kCAFF,GAGE;EARd;;AAWA,IAAM7V,aAAW,qBACZ4W,OAAO,CAAC5W,WADI;EAEfmZ,OAAO,EAAE;EAFX;;AAKA,IAAMte,WAAS,GAAG;EAChBE,IAAI,EAAE,MADU;EAEhBC,IAAI,EAAE;CAFR;AAKA,IAAMR,UAAQ,GAAG;EACf6f,KAAK,EAAE,iBADQ;EAEfC,OAAO,EAAE;CAFX;AAKA,IAAMtmB,OAAK,GAAG;EACZ+S,IAAI,WAASzM,WADD;EAEZ0M,MAAM,aAAW1M,WAFL;EAGZU,IAAI,WAASV,WAHD;EAIZwM,KAAK,YAAUxM,WAJH;EAKZgc,QAAQ,eAAahc,WALT;EAMZ4P,KAAK,YAAU5P,WANH;EAOZ0T,OAAO,cAAY1T,WAPP;EAQZic,QAAQ,eAAajc,WART;EASZmG,UAAU,iBAAenG,WATb;EAUZoG,UAAU,iBAAepG;;;;;;;CAV3B;;IAmBMigB;;;;;;;;;;;;SAiCJzC,gBAAA,yBAAgB;WACP,KAAKmB,QAAL,MAAmB,KAAKuB,WAAL,EAA1B;;;SAGFlC,qBAAA,4BAAmBF,UAAnB,EAA+B;SACxBR,aAAL,GAAqBjc,SAArB,CAA+BgC,GAA/B,CAAsC8X,cAAtC,SAAsD2C,UAAtD;;;SAGFD,aAAA,sBAAa;QACLlB,GAAG,GAAG,KAAKW,aAAL,EAAZ,CADW;;SAINsB,iBAAL,CAAuB7f,cAAc,CAACpG,OAAf,CAAuBuH,UAAQ,CAAC6f,KAAhC,EAAuCpD,GAAvC,CAAvB,EAAoE,KAAKgC,QAAL,EAApE;;QACIE,OAAO,GAAG,KAAKqB,WAAL,EAAd;;QACI,OAAOrB,OAAP,KAAmB,UAAvB,EAAmC;MACjCA,OAAO,GAAGA,OAAO,CAAC/rB,IAAR,CAAa,KAAKU,OAAlB,CAAV;;;SAGGorB,iBAAL,CAAuB7f,cAAc,CAACpG,OAAf,CAAuBuH,UAAQ,CAAC8f,OAAhC,EAAyCrD,GAAzC,CAAvB,EAAsEkC,OAAtE;IAEAlC,GAAG,CAACtb,SAAJ,CAAcC,MAAd,CAAqBf,WAAS,CAACE,IAA/B;IACAkc,GAAG,CAACtb,SAAJ,CAAcC,MAAd,CAAqBf,WAAS,CAACG,IAA/B;;;;SAKFwf,cAAA,uBAAc;WACL,KAAK1sB,OAAL,CAAaE,YAAb,CAA0B,cAA1B,KACL,KAAK+B,MAAL,CAAYopB,OADd;;;SAIFH,iBAAA,0BAAiB;QACT/B,GAAG,GAAG,KAAKW,aAAL,EAAZ;QACMiC,QAAQ,GAAG5C,GAAG,CAACjpB,YAAJ,CAAiB,OAAjB,EAA0BX,KAA1B,CAAgCqoB,oBAAhC,CAAjB;;QAEImE,QAAQ,KAAK,IAAb,IAAqBA,QAAQ,CAAChjB,MAAT,GAAkB,CAA3C,EAA8C;MAC5CgjB,QAAQ,CAACC,GAAT,CAAa,UAAAC,KAAK;eAAIA,KAAK,CAAC7rB,IAAN,EAAJ;OAAlB,EACGiC,OADH,CACW,UAAA6pB,MAAM;eAAI/C,GAAG,CAACtb,SAAJ,CAAcC,MAAd,CAAqBoe,MAArB,CAAJ;OADjB;;;;;UAOGhe,mBAAP,0BAAwBjM,MAAxB,EAAgC;WACvB,KAAKkM,IAAL,CAAU,YAAY;UACvB/J,IAAI,GAAGI,IAAI,CAACG,OAAL,CAAa,IAAb,EAAmB4H,UAAnB,CAAX;;UACMkI,OAAO,GAAG,OAAOxS,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsC,IAAtD;;UAEI,CAACmC,IAAD,IAAS,eAAezB,IAAf,CAAoBV,MAApB,CAAb,EAA0C;;;;UAItC,CAACmC,IAAL,EAAW;QACTA,IAAI,GAAG,IAAIqoB,OAAJ,CAAY,IAAZ,EAAkBhY,OAAlB,CAAP;QACAjQ,IAAI,CAACC,OAAL,CAAa,IAAb,EAAmB8H,UAAnB,EAA6BnI,IAA7B;;;UAGE,OAAOnC,MAAP,KAAkB,QAAtB,EAAgC;YAC1B,OAAOmC,IAAI,CAACnC,MAAD,CAAX,KAAwB,WAA5B,EAAyC;gBACjC,IAAI0W,SAAJ,wBAAkC1W,MAAlC,QAAN;;;QAGFmC,IAAI,CAACnC,MAAD,CAAJ;;KAlBG,CAAP;;;UAuBKqM,eAAP,sBAAoBtO,OAApB,EAA6B;WACpBwE,IAAI,CAACG,OAAL,CAAa3E,OAAb,EAAsBuM,UAAtB,CAAP;;;;;;wBAlGmB;aACZD,SAAP;;;;wBAGmB;aACZqF,SAAP;;;;wBAGgB;aACTtF,MAAP;;;;wBAGoB;aACbE,UAAP;;;;wBAGiB;aACVrG,OAAP;;;;wBAGqB;aACdsG,WAAP;;;;wBAGuB;aAChB0F,aAAP;;;;;EA5BkB4W;;;;;;;;AA+GtB,IAAI,OAAO5d,MAAP,KAAa,WAAjB,EAA8B;MACtBqD,oBAAkB,GAAGrD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,CAA3B;EACAnB,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAaogB,OAAO,CAACve,gBAArB;EACAhD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWmC,WAAX,GAAyBie,OAAzB;;EACAvhB,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWoC,UAAX,GAAwB,YAAM;IAC5BvD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAakC,oBAAb;WACOke,OAAO,CAACve,gBAAf;GAFF;;;ACtKF;;;;;;AAMA,IAAM7B,MAAI,GAAG,WAAb;AACA,IAAMC,SAAO,GAAG,OAAhB;AACA,IAAMC,UAAQ,GAAG,cAAjB;AACA,IAAMC,WAAS,SAAOD,UAAtB;AACA,IAAME,cAAY,GAAG,WAArB;AAEA,IAAMkF,SAAO,GAAG;EACdjB,MAAM,EAAE,EADM;EAEdic,MAAM,EAAE,MAFM;EAGd9jB,MAAM,EAAE;CAHV;AAMA,IAAMqJ,aAAW,GAAG;EAClBxB,MAAM,EAAE,QADU;EAElBic,MAAM,EAAE,QAFU;EAGlB9jB,MAAM,EAAE;CAHV;AAMA,IAAM3C,OAAK,GAAG;EACZ0mB,QAAQ,eAAapgB,WADT;EAEZqgB,MAAM,aAAWrgB,WAFL;EAGZ2G,aAAa,WAAS3G,WAAT,GAAqBC;CAHpC;AAMA,IAAMM,WAAS,GAAG;EAChB+f,aAAa,EAAE,eADC;EAEhBpe,MAAM,EAAE;CAFV;AAKA,IAAMhC,UAAQ,GAAG;EACfqgB,QAAQ,EAAE,qBADK;EAEfC,cAAc,EAAE,mBAFD;EAGfC,SAAS,EAAE,WAHI;EAIfC,SAAS,EAAE,WAJI;EAKfC,UAAU,EAAE,kBALG;EAMfC,QAAQ,EAAE,WANK;EAOfC,eAAe,EAAE;CAPnB;AAUA,IAAMC,YAAY,GAAG;EACnBC,MAAM,EAAE,QADW;EAEnBC,QAAQ,EAAE;;;;;;;CAFZ;;IAWMC;;;qBACQztB,OAAZ,EAAqBiC,MAArB,EAA6B;;;SACtBmL,QAAL,GAAgBpN,OAAhB;SACK0tB,cAAL,GAAsB1tB,OAAO,CAAC8W,OAAR,KAAoB,MAApB,GAA6B7X,MAA7B,GAAsCe,OAA5D;SACKyU,OAAL,GAAe,KAAKC,UAAL,CAAgBzS,MAAhB,CAAf;SACKgY,SAAL,GAAoB,KAAKxF,OAAL,CAAa5L,MAAhB,SAA0B6D,UAAQ,CAACugB,SAAnC,UACQ,KAAKxY,OAAL,CAAa5L,MADrB,SAC+B6D,UAAQ,CAACygB,UADxC,WAEQ,KAAK1Y,OAAL,CAAa5L,MAFrB,UAEgCkE,WAAS,CAAC+f,aAF1C,CAAjB;SAGKa,QAAL,GAAgB,EAAhB;SACKC,QAAL,GAAgB,EAAhB;SACKC,aAAL,GAAqB,IAArB;SACKC,aAAL,GAAqB,CAArB;IAEAtlB,YAAY,CAAC8B,EAAb,CAAgB,KAAKojB,cAArB,EAAqCxnB,OAAK,CAAC2mB,MAA3C,EAAmD,UAAA/kB,KAAK;aAAI,KAAI,CAACimB,QAAL,CAAcjmB,KAAd,CAAJ;KAAxD;SAEKkmB,OAAL;;SACKD,QAAL;;IAEAvpB,IAAI,CAACC,OAAL,CAAazE,OAAb,EAAsBuM,UAAtB,EAAgC,IAAhC;;;;;;;SAeFyhB,UAAA,mBAAU;;;QACFC,UAAU,GAAG,KAAKP,cAAL,KAAwB,KAAKA,cAAL,CAAoBzuB,MAA5C,GACjBquB,YAAY,CAACC,MADI,GAEjBD,YAAY,CAACE,QAFf;QAIMU,YAAY,GAAG,KAAKzZ,OAAL,CAAakY,MAAb,KAAwB,MAAxB,GACnBsB,UADmB,GAEnB,KAAKxZ,OAAL,CAAakY,MAFf;QAIMwB,UAAU,GAAGD,YAAY,KAAKZ,YAAY,CAACE,QAA9B,GACjB,KAAKY,aAAL,EADiB,GAEjB,CAFF;SAIKT,QAAL,GAAgB,EAAhB;SACKC,QAAL,GAAgB,EAAhB;SAEKE,aAAL,GAAqB,KAAKO,gBAAL,EAArB;QAEMC,OAAO,GAAGxrB,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAAoB,KAAKgV,SAAzB,CAAD,CAAzB;IAEAqU,OAAO,CACJtC,GADH,CACO,UAAAhsB,OAAO,EAAI;UACV6I,MAAJ;UACM0lB,cAAc,GAAGxuB,sBAAsB,CAACC,OAAD,CAA7C;;UAEIuuB,cAAJ,EAAoB;QAClB1lB,MAAM,GAAG0C,cAAc,CAACpG,OAAf,CAAuBopB,cAAvB,CAAT;;;UAGE1lB,MAAJ,EAAY;YACJ2lB,SAAS,GAAG3lB,MAAM,CAAC+H,qBAAP,EAAlB;;YACI4d,SAAS,CAACzK,KAAV,IAAmByK,SAAS,CAACC,MAAjC,EAAyC;iBAChC,CACLte,WAAW,CAAC+d,YAAD,CAAX,CAA0BrlB,MAA1B,EAAkCgI,GAAlC,GAAwCsd,UADnC,EAELI,cAFK,CAAP;;;;aAOG,IAAP;KAnBJ,EAqBG7iB,MArBH,CAqBU,UAAAgjB,IAAI;aAAIA,IAAJ;KArBd,EAsBGC,IAtBH,CAsBQ,UAAC5J,CAAD,EAAIE,CAAJ;aAAUF,CAAC,CAAC,CAAD,CAAD,GAAOE,CAAC,CAAC,CAAD,CAAlB;KAtBR,EAuBG5iB,OAvBH,CAuBW,UAAAqsB,IAAI,EAAI;MACf,MAAI,CAACf,QAAL,CAAc3hB,IAAd,CAAmB0iB,IAAI,CAAC,CAAD,CAAvB;;MACA,MAAI,CAACd,QAAL,CAAc5hB,IAAd,CAAmB0iB,IAAI,CAAC,CAAD,CAAvB;KAzBJ;;;SA6BF/gB,UAAA,mBAAU;IACRnJ,IAAI,CAACI,UAAL,CAAgB,KAAKwI,QAArB,EAA+Bb,UAA/B;IACA/D,YAAY,CAACC,GAAb,CAAiB,KAAKilB,cAAtB,EAAsClhB,WAAtC;SAEKY,QAAL,GAAgB,IAAhB;SACKsgB,cAAL,GAAsB,IAAtB;SACKjZ,OAAL,GAAe,IAAf;SACKwF,SAAL,GAAiB,IAAjB;SACK0T,QAAL,GAAgB,IAAhB;SACKC,QAAL,GAAgB,IAAhB;SACKC,aAAL,GAAqB,IAArB;SACKC,aAAL,GAAqB,IAArB;;;;SAKFpZ,aAAA,oBAAWzS,MAAX,EAAmB;IACjBA,MAAM,qBACD0P,SADC,EAED,OAAO1P,MAAP,KAAkB,QAAlB,IAA8BA,MAA9B,GAAuCA,MAAvC,GAAgD,EAF/C,CAAN;;QAKI,OAAOA,MAAM,CAAC4G,MAAd,KAAyB,QAA7B,EAAuC;UAC/B5E,EAD+B,GACxBhC,MAAM,CAAC4G,MADiB,CAC/B5E,EAD+B;;UAEjC,CAACA,EAAL,EAAS;QACPA,EAAE,GAAGxE,MAAM,CAAC4M,MAAD,CAAX;QACApK,MAAM,CAAC4G,MAAP,CAAc5E,EAAd,GAAmBA,EAAnB;;;MAGFhC,MAAM,CAAC4G,MAAP,SAAoB5E,EAApB;;;IAGFlC,eAAe,CAACsK,MAAD,EAAOpK,MAAP,EAAeiQ,aAAf,CAAf;WAEOjQ,MAAP;;;SAGFmsB,gBAAA,yBAAgB;WACP,KAAKV,cAAL,KAAwBzuB,MAAxB,GACL,KAAKyuB,cAAL,CAAoBkB,WADf,GAEL,KAAKlB,cAAL,CAAoB3c,SAFtB;;;SAKFsd,mBAAA,4BAAmB;WACV,KAAKX,cAAL,CAAoB3K,YAApB,IAAoCpjB,IAAI,CAACkvB,GAAL,CACzChvB,QAAQ,CAACiR,IAAT,CAAciS,YAD2B,EAEzCljB,QAAQ,CAAC0D,eAAT,CAAyBwf,YAFgB,CAA3C;;;SAMF+L,mBAAA,4BAAmB;WACV,KAAKpB,cAAL,KAAwBzuB,MAAxB,GACLA,MAAM,CAAC8vB,WADF,GAEL,KAAKrB,cAAL,CAAoB9c,qBAApB,GAA4C6d,MAF9C;;;SAKFV,WAAA,oBAAW;QACHhd,SAAS,GAAG,KAAKqd,aAAL,KAAuB,KAAK3Z,OAAL,CAAa/D,MAAtD;;QACMqS,YAAY,GAAG,KAAKsL,gBAAL,EAArB;;QACMW,SAAS,GAAG,KAAKva,OAAL,CAAa/D,MAAb,GAChBqS,YADgB,GAEhB,KAAK+L,gBAAL,EAFF;;QAII,KAAKhB,aAAL,KAAuB/K,YAA3B,EAAyC;WAClCiL,OAAL;;;QAGEjd,SAAS,IAAIie,SAAjB,EAA4B;UACpBnmB,MAAM,GAAG,KAAK+kB,QAAL,CAAc,KAAKA,QAAL,CAAc7kB,MAAd,GAAuB,CAArC,CAAf;;UAEI,KAAK8kB,aAAL,KAAuBhlB,MAA3B,EAAmC;aAC5BomB,SAAL,CAAepmB,MAAf;;;;;;QAMA,KAAKglB,aAAL,IAAsB9c,SAAS,GAAG,KAAK4c,QAAL,CAAc,CAAd,CAAlC,IAAsD,KAAKA,QAAL,CAAc,CAAd,IAAmB,CAA7E,EAAgF;WACzEE,aAAL,GAAqB,IAArB;;WACKqB,MAAL;;;;;QAIIC,YAAY,GAAG,KAAKxB,QAAL,CAAc5kB,MAAnC;;SACK,IAAID,CAAC,GAAGqmB,YAAb,EAA2BrmB,CAAC,EAA5B,GAAiC;UACzBsmB,cAAc,GAAG,KAAKvB,aAAL,KAAuB,KAAKD,QAAL,CAAc9kB,CAAd,CAAvB,IACnBiI,SAAS,IAAI,KAAK4c,QAAL,CAAc7kB,CAAd,CADM,KAElB,OAAO,KAAK6kB,QAAL,CAAc7kB,CAAC,GAAG,CAAlB,CAAP,KAAgC,WAAhC,IACGiI,SAAS,GAAG,KAAK4c,QAAL,CAAc7kB,CAAC,GAAG,CAAlB,CAHG,CAAvB;;UAKIsmB,cAAJ,EAAoB;aACbH,SAAL,CAAe,KAAKrB,QAAL,CAAc9kB,CAAd,CAAf;;;;;SAKNmmB,YAAA,mBAAUpmB,MAAV,EAAkB;SACXglB,aAAL,GAAqBhlB,MAArB;;SAEKqmB,MAAL;;QAEMG,OAAO,GAAG,KAAKpV,SAAL,CAAenZ,KAAf,CAAqB,GAArB,EACbkrB,GADa,CACT,UAAA/rB,QAAQ;aAAOA,QAAP,uBAAgC4I,MAAhC,YAA4C5I,QAA5C,gBAA8D4I,MAA9D;KADC,CAAhB;;QAGMymB,IAAI,GAAG/jB,cAAc,CAACpG,OAAf,CAAuBkqB,OAAO,CAACE,IAAR,CAAa,GAAb,CAAvB,CAAb;;QAEID,IAAI,CAACzhB,SAAL,CAAeE,QAAf,CAAwBhB,WAAS,CAAC+f,aAAlC,CAAJ,EAAsD;MACpDvhB,cAAc,CACXpG,OADH,CACWuH,UAAQ,CAAC2gB,eADpB,EACqC9hB,cAAc,CAACvG,OAAf,CAAuBsqB,IAAvB,EAA6B5iB,UAAQ,CAAC0gB,QAAtC,CADrC,EAEGvf,SAFH,CAEagC,GAFb,CAEiB9C,WAAS,CAAC2B,MAF3B;MAIA4gB,IAAI,CAACzhB,SAAL,CAAegC,GAAf,CAAmB9C,WAAS,CAAC2B,MAA7B;KALF,MAMO;;MAEL4gB,IAAI,CAACzhB,SAAL,CAAegC,GAAf,CAAmB9C,WAAS,CAAC2B,MAA7B;MAEAnD,cAAc,CACXK,OADH,CACW0jB,IADX,EACiB5iB,UAAQ,CAACsgB,cAD1B,EAEG3qB,OAFH,CAEW,UAAAmtB,SAAS,EAAI;;;QAGpBjkB,cAAc,CAACU,IAAf,CAAoBujB,SAApB,EAAkC9iB,UAAQ,CAACugB,SAA3C,UAAyDvgB,UAAQ,CAACygB,UAAlE,EACG9qB,OADH,CACW,UAAAqsB,IAAI;iBAAIA,IAAI,CAAC7gB,SAAL,CAAegC,GAAf,CAAmB9C,WAAS,CAAC2B,MAA7B,CAAJ;SADf,EAHoB;;QAOpBnD,cAAc,CAACU,IAAf,CAAoBujB,SAApB,EAA+B9iB,UAAQ,CAACwgB,SAAxC,EACG7qB,OADH,CACW,UAAAotB,OAAO,EAAI;UAClBlkB,cAAc,CAACE,QAAf,CAAwBgkB,OAAxB,EAAiC/iB,UAAQ,CAACugB,SAA1C,EACG5qB,OADH,CACW,UAAAqsB,IAAI;mBAAIA,IAAI,CAAC7gB,SAAL,CAAegC,GAAf,CAAmB9C,WAAS,CAAC2B,MAA7B,CAAJ;WADf;SAFJ;OATJ;;;IAiBFlG,YAAY,CAACsC,OAAb,CAAqB,KAAK4iB,cAA1B,EAA0CxnB,OAAK,CAAC0mB,QAAhD,EAA0D;MACxDrV,aAAa,EAAE1O;KADjB;;;SAKFqmB,SAAA,kBAAS;IACPpsB,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAAoB,KAAKgV,SAAzB,CAAD,CAAT,CACGvO,MADH,CACU,UAAAgkB,IAAI;aAAIA,IAAI,CAAC7hB,SAAL,CAAeE,QAAf,CAAwBhB,WAAS,CAAC2B,MAAlC,CAAJ;KADd,EAEGrM,OAFH,CAEW,UAAAqtB,IAAI;aAAIA,IAAI,CAAC7hB,SAAL,CAAeC,MAAf,CAAsBf,WAAS,CAAC2B,MAAhC,CAAJ;KAFf;;;;YAOKR,mBAAP,0BAAwBjM,MAAxB,EAAgC;WACvB,KAAKkM,IAAL,CAAU,YAAY;UACvB/J,IAAI,GAAGI,IAAI,CAACG,OAAL,CAAa,IAAb,EAAmB4H,UAAnB,CAAX;;UACMkI,OAAO,GAAG,OAAOxS,MAAP,KAAkB,QAAlB,IAA8BA,MAA9C;;UAEI,CAACmC,IAAL,EAAW;QACTA,IAAI,GAAG,IAAIqpB,SAAJ,CAAc,IAAd,EAAoBhZ,OAApB,CAAP;;;UAGE,OAAOxS,MAAP,KAAkB,QAAtB,EAAgC;YAC1B,OAAOmC,IAAI,CAACnC,MAAD,CAAX,KAAwB,WAA5B,EAAyC;gBACjC,IAAI0W,SAAJ,wBAAkC1W,MAAlC,QAAN;;;QAGFmC,IAAI,CAACnC,MAAD,CAAJ;;KAbG,CAAP;;;YAkBKqM,eAAP,sBAAoBtO,OAApB,EAA6B;WACpBwE,IAAI,CAACG,OAAL,CAAa3E,OAAb,EAAsBuM,UAAtB,CAAP;;;;;wBAjOmB;aACZD,SAAP;;;;wBAGmB;aACZqF,SAAP;;;;;;;;;;;;;AAsOJnJ,YAAY,CAAC8B,EAAb,CAAgBrL,MAAhB,EAAwBiH,OAAK,CAACiN,aAA9B,EAA6C,YAAM;EACjDrQ,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAAoByH,UAAQ,CAACqgB,QAA7B,CAAD,CAAT,CACG1qB,OADH,CACW,UAAAstB,GAAG;WAAI,IAAIlC,SAAJ,CAAckC,GAAd,EAAmBxf,WAAW,CAACG,iBAAZ,CAA8Bqf,GAA9B,CAAnB,CAAJ;GADd;CADF;;;;;;;AAWA,IAAI,OAAOzkB,MAAP,KAAa,WAAjB,EAA8B;MACtBqD,oBAAkB,GAAGrD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,CAA3B;EACAnB,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAaohB,SAAS,CAACvf,gBAAvB;EACAhD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWmC,WAAX,GAAyBif,SAAzB;;EACAviB,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWoC,UAAX,GAAwB,YAAM;IAC5BvD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAakC,oBAAb;WACOkf,SAAS,CAACvf,gBAAjB;GAFF;;;ACxUF;;;;;;AAMA,IAAM7B,MAAI,GAAG,KAAb;AACA,IAAMC,SAAO,GAAG,OAAhB;AACA,IAAMC,UAAQ,GAAG,QAAjB;AACA,IAAMC,WAAS,SAAOD,UAAtB;AACA,IAAME,cAAY,GAAG,WAArB;AAEA,IAAMvG,OAAK,GAAG;EACZ+S,IAAI,WAASzM,WADD;EAEZ0M,MAAM,aAAW1M,WAFL;EAGZU,IAAI,WAASV,WAHD;EAIZwM,KAAK,YAAUxM,WAJH;EAKZM,cAAc,YAAUN,WAAV,GAAsBC;CALtC;AAQA,IAAMM,WAAS,GAAG;EAChB6iB,aAAa,EAAE,eADC;EAEhBlhB,MAAM,EAAE,QAFQ;EAGhB6N,QAAQ,EAAE,UAHM;EAIhBtP,IAAI,EAAE,MAJU;EAKhBC,IAAI,EAAE;CALR;AAQA,IAAMR,UAAQ,GAAG;EACf0gB,QAAQ,EAAE,WADK;EAEfJ,cAAc,EAAE,mBAFD;EAGfte,MAAM,EAAE,SAHO;EAIfmhB,SAAS,EAAE,uBAJI;EAKf/gB,WAAW,EAAE,iEALE;EAMfue,eAAe,EAAE,kBANF;EAOfyC,qBAAqB,EAAE;;;;;;;CAPzB;;IAgBMC;;;eACQ/vB,OAAZ,EAAqB;SACdoN,QAAL,GAAgBpN,OAAhB;IAEAwE,IAAI,CAACC,OAAL,CAAa,KAAK2I,QAAlB,EAA4Bb,UAA5B,EAAsC,IAAtC;;;;;;;SAWF+N,OAAA,gBAAO;;;QACD,KAAKlN,QAAL,CAAcjK,UAAd,IACF,KAAKiK,QAAL,CAAcjK,UAAd,CAAyB9B,QAAzB,KAAsCyK,IAAI,CAACC,YADzC,IAEF,KAAKqB,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAAC2B,MAA3C,CAFE,IAGF,KAAKtB,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAACwP,QAA3C,CAHF,EAGwD;;;;QAIpD1T,MAAJ;QACIsD,QAAJ;QACM6jB,WAAW,GAAGzkB,cAAc,CAACvG,OAAf,CAAuB,KAAKoI,QAA5B,EAAsCV,UAAQ,CAACsgB,cAA/C,CAApB;QACM/sB,QAAQ,GAAGF,sBAAsB,CAAC,KAAKqN,QAAN,CAAvC;;QAEI4iB,WAAJ,EAAiB;UACTC,YAAY,GAAGD,WAAW,CAACvL,QAAZ,KAAyB,IAAzB,IAAiCuL,WAAW,CAACvL,QAAZ,KAAyB,IAA1D,GAAiE/X,UAAQ,CAACmjB,SAA1E,GAAsFnjB,UAAQ,CAACgC,MAApH;MACAvC,QAAQ,GAAGrJ,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAAoBgrB,YAApB,EAAkCD,WAAlC,CAAD,CAApB;MACA7jB,QAAQ,GAAGA,QAAQ,CAACA,QAAQ,CAACpD,MAAT,GAAkB,CAAnB,CAAnB;;;QAGE0V,SAAS,GAAG,IAAhB;;QAEItS,QAAJ,EAAc;MACZsS,SAAS,GAAGjW,YAAY,CAACsC,OAAb,CAAqBqB,QAArB,EAA+BjG,OAAK,CAAC+S,IAArC,EAA2C;QACrD1B,aAAa,EAAE,KAAKnK;OADV,CAAZ;;;QAKIiR,SAAS,GAAG7V,YAAY,CAACsC,OAAb,CAAqB,KAAKsC,QAA1B,EAAoClH,OAAK,CAACgH,IAA1C,EAAgD;MAChEqK,aAAa,EAAEpL;KADC,CAAlB;;QAIIkS,SAAS,CAACrY,gBAAV,IACFyY,SAAS,KAAK,IAAd,IAAsBA,SAAS,CAACzY,gBADlC,EACoD;;;;QAIhD/F,QAAJ,EAAc;MACZ4I,MAAM,GAAG0C,cAAc,CAACpG,OAAf,CAAuBlF,QAAvB,CAAT;;;SAGGgvB,SAAL,CACE,KAAK7hB,QADP,EAEE4iB,WAFF;;QAKM/U,QAAQ,GAAG,SAAXA,QAAW,GAAM;MACrBzS,YAAY,CAACsC,OAAb,CAAqBqB,QAArB,EAA+BjG,OAAK,CAACgT,MAArC,EAA6C;QAC3C3B,aAAa,EAAE,KAAI,CAACnK;OADtB;MAGA5E,YAAY,CAACsC,OAAb,CAAqB,KAAI,CAACsC,QAA1B,EAAoClH,OAAK,CAAC8S,KAA1C,EAAiD;QAC/CzB,aAAa,EAAEpL;OADjB;KAJF;;QASItD,MAAJ,EAAY;WACLomB,SAAL,CAAepmB,MAAf,EAAuBA,MAAM,CAAC1F,UAA9B,EAA0C8X,QAA1C;KADF,MAEO;MACLA,QAAQ;;;;SAIZtN,UAAA,mBAAU;IACRnJ,IAAI,CAACI,UAAL,CAAgB,KAAKwI,QAArB,EAA+Bb,UAA/B;SACKa,QAAL,GAAgB,IAAhB;;;;SAKF6hB,YAAA,mBAAUjvB,OAAV,EAAmBya,SAAnB,EAA8BgI,QAA9B,EAAwC;;;QAChCyN,cAAc,GAAGzV,SAAS,KAAKA,SAAS,CAACgK,QAAV,KAAuB,IAAvB,IAA+BhK,SAAS,CAACgK,QAAV,KAAuB,IAA3D,CAAT,GACrBlZ,cAAc,CAACtG,IAAf,CAAoByH,UAAQ,CAACmjB,SAA7B,EAAwCpV,SAAxC,CADqB,GAErBlP,cAAc,CAACE,QAAf,CAAwBgP,SAAxB,EAAmC/N,UAAQ,CAACgC,MAA5C,CAFF;QAIMyhB,MAAM,GAAGD,cAAc,CAAC,CAAD,CAA7B;QACM7U,eAAe,GAAGoH,QAAQ,IAC7B0N,MAAM,IAAIA,MAAM,CAACtiB,SAAP,CAAiBE,QAAjB,CAA0BhB,WAAS,CAACE,IAApC,CADb;;QAGMgO,QAAQ,GAAG,SAAXA,QAAW;aAAM,MAAI,CAACmV,mBAAL,CACrBpwB,OADqB,EAErBmwB,MAFqB,EAGrB1N,QAHqB,CAAN;KAAjB;;QAMI0N,MAAM,IAAI9U,eAAd,EAA+B;UACvB5a,kBAAkB,GAAGF,gCAAgC,CAAC4vB,MAAD,CAA3D;MACAA,MAAM,CAACtiB,SAAP,CAAiBC,MAAjB,CAAwBf,WAAS,CAACG,IAAlC;MAEA1E,YAAY,CAAC+B,GAAb,CAAiB4lB,MAAjB,EAAyBnxB,cAAzB,EAAyCic,QAAzC;MACA3Z,oBAAoB,CAAC6uB,MAAD,EAAS1vB,kBAAT,CAApB;KALF,MAMO;MACLwa,QAAQ;;;;SAIZmV,sBAAA,6BAAoBpwB,OAApB,EAA6BmwB,MAA7B,EAAqC1N,QAArC,EAA+C;QACzC0N,MAAJ,EAAY;MACVA,MAAM,CAACtiB,SAAP,CAAiBC,MAAjB,CAAwBf,WAAS,CAAC2B,MAAlC;UAEM2hB,aAAa,GAAG9kB,cAAc,CAACpG,OAAf,CAAuBuH,UAAQ,CAACojB,qBAAhC,EAAuDK,MAAM,CAAChtB,UAA9D,CAAtB;;UAEIktB,aAAJ,EAAmB;QACjBA,aAAa,CAACxiB,SAAd,CAAwBC,MAAxB,CAA+Bf,WAAS,CAAC2B,MAAzC;;;UAGEyhB,MAAM,CAACjwB,YAAP,CAAoB,MAApB,MAAgC,KAApC,EAA2C;QACzCiwB,MAAM,CAACxgB,YAAP,CAAoB,eAApB,EAAqC,KAArC;;;;IAIJ3P,OAAO,CAAC6N,SAAR,CAAkBgC,GAAlB,CAAsB9C,WAAS,CAAC2B,MAAhC;;QACI1O,OAAO,CAACE,YAAR,CAAqB,MAArB,MAAiC,KAArC,EAA4C;MAC1CF,OAAO,CAAC2P,YAAR,CAAqB,eAArB,EAAsC,IAAtC;;;IAGF9L,MAAM,CAAC7D,OAAD,CAAN;;QAEIA,OAAO,CAAC6N,SAAR,CAAkBE,QAAlB,CAA2BhB,WAAS,CAACE,IAArC,CAAJ,EAAgD;MAC9CjN,OAAO,CAAC6N,SAAR,CAAkBgC,GAAlB,CAAsB9C,WAAS,CAACG,IAAhC;;;QAGElN,OAAO,CAACmD,UAAR,IAAsBnD,OAAO,CAACmD,UAAR,CAAmB0K,SAAnB,CAA6BE,QAA7B,CAAsChB,WAAS,CAAC6iB,aAAhD,CAA1B,EAA0F;UAClFU,eAAe,GAAG/kB,cAAc,CAACvG,OAAf,CAAuBhF,OAAvB,EAAgC0M,UAAQ,CAAC0gB,QAAzC,CAAxB;;UAEIkD,eAAJ,EAAqB;QACnBxtB,SAAS,CAACyI,cAAc,CAACtG,IAAf,CAAoByH,UAAQ,CAAC2gB,eAA7B,CAAD,CAAT,CACGhrB,OADH,CACW,UAAAkuB,QAAQ;iBAAIA,QAAQ,CAAC1iB,SAAT,CAAmBgC,GAAnB,CAAuB9C,WAAS,CAAC2B,MAAjC,CAAJ;SADnB;;;MAIF1O,OAAO,CAAC2P,YAAR,CAAqB,eAArB,EAAsC,IAAtC;;;QAGE8S,QAAJ,EAAc;MACZA,QAAQ;;;;;MAMLvU,mBAAP,0BAAwBjM,MAAxB,EAAgC;WACvB,KAAKkM,IAAL,CAAU,YAAY;UACrB/J,IAAI,GAAGI,IAAI,CAACG,OAAL,CAAa,IAAb,EAAmB4H,UAAnB,KAAgC,IAAIwjB,GAAJ,CAAQ,IAAR,CAA7C;;UAEI,OAAO9tB,MAAP,KAAkB,QAAtB,EAAgC;YAC1B,OAAOmC,IAAI,CAACnC,MAAD,CAAX,KAAwB,WAA5B,EAAyC;gBACjC,IAAI0W,SAAJ,wBAAkC1W,MAAlC,QAAN;;;QAGFmC,IAAI,CAACnC,MAAD,CAAJ;;KARG,CAAP;;;MAaKqM,eAAP,sBAAoBtO,OAApB,EAA6B;WACpBwE,IAAI,CAACG,OAAL,CAAa3E,OAAb,EAAsBuM,UAAtB,CAAP;;;;;wBA/JmB;aACZD,SAAP;;;;;;;;;;;;;AAwKJ9D,YAAY,CAAC8B,EAAb,CAAgBzK,QAAhB,EAA0BqG,OAAK,CAAC4G,cAAhC,EAAgDJ,UAAQ,CAACoC,WAAzD,EAAsE,UAAUhH,KAAV,EAAiB;EACrFA,KAAK,CAAC/B,cAAN;MAEM3B,IAAI,GAAGI,IAAI,CAACG,OAAL,CAAa,IAAb,EAAmB4H,UAAnB,KAAgC,IAAIwjB,GAAJ,CAAQ,IAAR,CAA7C;EACA3rB,IAAI,CAACkW,IAAL;CAJF;;;;;;;;AAcA,IAAI,OAAOpP,MAAP,KAAa,WAAjB,EAA8B;MACtBqD,oBAAkB,GAAGrD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,CAA3B;EACAnB,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAa0jB,GAAG,CAAC7hB,gBAAjB;EACAhD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWmC,WAAX,GAAyBuhB,GAAzB;;EACA7kB,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWoC,UAAX,GAAwB,YAAM;IAC5BvD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAakC,oBAAb;WACOwhB,GAAG,CAAC7hB,gBAAX;GAFF;;;AClPF;;;;;;AAMA,IAAM7B,MAAI,GAAG,OAAb;AACA,IAAMC,SAAO,GAAG,OAAhB;AACA,IAAMC,UAAQ,GAAG,UAAjB;AACA,IAAMC,WAAS,SAAOD,UAAtB;AAEA,IAAMrG,OAAK,GAAG;EACZka,aAAa,oBAAkB5T,WADnB;EAEZyM,IAAI,WAASzM,WAFD;EAGZ0M,MAAM,aAAW1M,WAHL;EAIZU,IAAI,WAASV,WAJD;EAKZwM,KAAK,YAAUxM;CALjB;AAQA,IAAMO,WAAS,GAAG;EAChBE,IAAI,EAAE,MADU;EAEhBgM,IAAI,EAAE,MAFU;EAGhB/L,IAAI,EAAE,MAHU;EAIhBsjB,OAAO,EAAE;CAJX;AAOA,IAAMte,aAAW,GAAG;EAClB4V,SAAS,EAAE,SADO;EAElB2I,QAAQ,EAAE,SAFQ;EAGlBxI,KAAK,EAAE;CAHT;AAMA,IAAMtW,SAAO,GAAG;EACdmW,SAAS,EAAE,IADG;EAEd2I,QAAQ,EAAE,IAFI;EAGdxI,KAAK,EAAE;CAHT;AAMA,IAAMvb,UAAQ,GAAG;EACfoU,YAAY,EAAE;;;;;;;CADhB;;IAUM4P;;;iBACQ1wB,OAAZ,EAAqBiC,MAArB,EAA6B;SACtBmL,QAAL,GAAgBpN,OAAhB;SACKyU,OAAL,GAAe,KAAKC,UAAL,CAAgBzS,MAAhB,CAAf;SACK+mB,QAAL,GAAgB,IAAhB;;SACKI,aAAL;;IACA5kB,IAAI,CAACC,OAAL,CAAazE,OAAb,EAAsBuM,UAAtB,EAAgC,IAAhC;;;;;;;SAmBF+N,OAAA,gBAAO;;;QACC+D,SAAS,GAAG7V,YAAY,CAACsC,OAAb,CAAqB,KAAKsC,QAA1B,EAAoClH,OAAK,CAACgH,IAA1C,CAAlB;;QAEImR,SAAS,CAACrY,gBAAd,EAAgC;;;;QAI5B,KAAKyO,OAAL,CAAaqT,SAAjB,EAA4B;WACrB1a,QAAL,CAAcS,SAAd,CAAwBgC,GAAxB,CAA4B9C,WAAS,CAACE,IAAtC;;;QAGIgO,QAAQ,GAAG,SAAXA,QAAW,GAAM;MACrB,KAAI,CAAC7N,QAAL,CAAcS,SAAd,CAAwBC,MAAxB,CAA+Bf,WAAS,CAACyjB,OAAzC;;MACA,KAAI,CAACpjB,QAAL,CAAcS,SAAd,CAAwBgC,GAAxB,CAA4B9C,WAAS,CAACG,IAAtC;;MAEA1E,YAAY,CAACsC,OAAb,CAAqB,KAAI,CAACsC,QAA1B,EAAoClH,OAAK,CAAC8S,KAA1C;;UAEI,KAAI,CAACvE,OAAL,CAAagc,QAAjB,EAA2B;QACzB,KAAI,CAACzH,QAAL,GAAgBlnB,UAAU,CAAC,YAAM;UAC/B,KAAI,CAACuY,IAAL;SADwB,EAEvB,KAAI,CAAC5F,OAAL,CAAawT,KAFU,CAA1B;;KAPJ;;SAaK7a,QAAL,CAAcS,SAAd,CAAwBC,MAAxB,CAA+Bf,WAAS,CAACkM,IAAzC;;SACK7L,QAAL,CAAcS,SAAd,CAAwBgC,GAAxB,CAA4B9C,WAAS,CAACyjB,OAAtC;;QACI,KAAK/b,OAAL,CAAaqT,SAAjB,EAA4B;UACpBrnB,kBAAkB,GAAGF,gCAAgC,CAAC,KAAK6M,QAAN,CAA3D;MAEA5E,YAAY,CAAC+B,GAAb,CAAiB,KAAK6C,QAAtB,EAAgCpO,cAAhC,EAAgDic,QAAhD;MACA3Z,oBAAoB,CAAC,KAAK8L,QAAN,EAAgB3M,kBAAhB,CAApB;KAJF,MAKO;MACLwa,QAAQ;;;;SAIZZ,OAAA,gBAAO;;;QACD,CAAC,KAAKjN,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAACG,IAA3C,CAAL,EAAuD;;;;QAIjDuR,SAAS,GAAGjW,YAAY,CAACsC,OAAb,CAAqB,KAAKsC,QAA1B,EAAoClH,OAAK,CAAC+S,IAA1C,CAAlB;;QAEIwF,SAAS,CAACzY,gBAAd,EAAgC;;;;QAI1BiV,QAAQ,GAAG,SAAXA,QAAW,GAAM;MACrB,MAAI,CAAC7N,QAAL,CAAcS,SAAd,CAAwBgC,GAAxB,CAA4B9C,WAAS,CAACkM,IAAtC;;MACAzQ,YAAY,CAACsC,OAAb,CAAqB,MAAI,CAACsC,QAA1B,EAAoClH,OAAK,CAACgT,MAA1C;KAFF;;SAKK9L,QAAL,CAAcS,SAAd,CAAwBC,MAAxB,CAA+Bf,WAAS,CAACG,IAAzC;;QACI,KAAKuH,OAAL,CAAaqT,SAAjB,EAA4B;UACpBrnB,kBAAkB,GAAGF,gCAAgC,CAAC,KAAK6M,QAAN,CAA3D;MAEA5E,YAAY,CAAC+B,GAAb,CAAiB,KAAK6C,QAAtB,EAAgCpO,cAAhC,EAAgDic,QAAhD;MACA3Z,oBAAoB,CAAC,KAAK8L,QAAN,EAAgB3M,kBAAhB,CAApB;KAJF,MAKO;MACLwa,QAAQ;;;;SAIZtN,UAAA,mBAAU;IACRiJ,YAAY,CAAC,KAAKoS,QAAN,CAAZ;SACKA,QAAL,GAAgB,IAAhB;;QAEI,KAAK5b,QAAL,CAAcS,SAAd,CAAwBE,QAAxB,CAAiChB,WAAS,CAACG,IAA3C,CAAJ,EAAsD;WAC/CE,QAAL,CAAcS,SAAd,CAAwBC,MAAxB,CAA+Bf,WAAS,CAACG,IAAzC;;;IAGF1E,YAAY,CAACC,GAAb,CAAiB,KAAK2E,QAAtB,EAAgClH,OAAK,CAACka,aAAtC;IACA5b,IAAI,CAACI,UAAL,CAAgB,KAAKwI,QAArB,EAA+Bb,UAA/B;SAEKa,QAAL,GAAgB,IAAhB;SACKqH,OAAL,GAAe,IAAf;;;;SAKFC,aAAA,oBAAWzS,MAAX,EAAmB;IACjBA,MAAM,qBACD0P,SADC,EAEDxB,WAAW,CAACG,iBAAZ,CAA8B,KAAKlD,QAAnC,CAFC,EAGD,OAAOnL,MAAP,KAAkB,QAAlB,IAA8BA,MAA9B,GAAuCA,MAAvC,GAAgD,EAH/C,CAAN;IAMAF,eAAe,CACbsK,MADa,EAEbpK,MAFa,EAGb,KAAK6c,WAAL,CAAiB5M,WAHJ,CAAf;WAMOjQ,MAAP;;;SAGFmnB,gBAAA,yBAAgB;;;IACd5gB,YAAY,CAAC8B,EAAb,CACE,KAAK8C,QADP,EAEElH,OAAK,CAACka,aAFR,EAGE1T,UAAQ,CAACoU,YAHX,EAIE;aAAM,MAAI,CAACzG,IAAL,EAAN;KAJF;;;;QAUKnM,mBAAP,0BAAwBjM,MAAxB,EAAgC;WACvB,KAAKkM,IAAL,CAAU,YAAY;UACvB/J,IAAI,GAAGI,IAAI,CAACG,OAAL,CAAa,IAAb,EAAmB4H,UAAnB,CAAX;;UACMkI,OAAO,GAAG,OAAOxS,MAAP,KAAkB,QAAlB,IAA8BA,MAA9C;;UAEI,CAACmC,IAAL,EAAW;QACTA,IAAI,GAAG,IAAIssB,KAAJ,CAAU,IAAV,EAAgBjc,OAAhB,CAAP;;;UAGE,OAAOxS,MAAP,KAAkB,QAAtB,EAAgC;YAC1B,OAAOmC,IAAI,CAACnC,MAAD,CAAX,KAAwB,WAA5B,EAAyC;gBACjC,IAAI0W,SAAJ,wBAAkC1W,MAAlC,QAAN;;;QAGFmC,IAAI,CAACnC,MAAD,CAAJ,CAAa,IAAb;;KAbG,CAAP;;;QAkBKqM,eAAP,sBAAoBtO,OAApB,EAA6B;WACpBwE,IAAI,CAACG,OAAL,CAAa3E,OAAb,EAAsBuM,UAAtB,CAAP;;;;;wBA7ImB;aACZD,SAAP;;;;wBAGuB;aAChB4F,aAAP;;;;wBAGmB;aACZP,SAAP;;;;;;;;;;;;;;AA+IJ,IAAI,OAAOzG,MAAP,KAAa,WAAjB,EAA8B;MACtBqD,oBAAkB,GAAGrD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,CAA3B;EACAnB,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAaqkB,KAAK,CAACxiB,gBAAnB;EACAhD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWmC,WAAX,GAAyBkiB,KAAzB;;EACAxlB,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,EAAWoC,UAAX,GAAwB,YAAM;IAC5BvD,MAAC,CAAC7C,EAAF,CAAKgE,MAAL,IAAakC,oBAAb;WACOmiB,KAAK,CAACxiB,gBAAb;GAFF;;;ACzOF;;;;;;;;;"}
\ No newline at end of file +{"version":3,"file":"bootstrap.esm.js","sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/event-handler.js","../../js/src/dom/selector-engine.js","../../js/src/alert/alert.js","../../js/src/button/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel/carousel.js","../../js/src/collapse/collapse.js","../../js/src/dropdown/dropdown.js","../../js/src/modal/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip/tooltip.js","../../js/src/popover/popover.js","../../js/src/scrollspy/scrollspy.js","../../js/src/tab/tab.js","../../js/src/toast/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n const siblings = []\n\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\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 if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\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 const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\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 static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n const selector = getSelectorFromElement(element)\n const selected = selector ? SelectorEngine.findOne(selector) : null\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n const parent = Dropdown._getParentFromElement(this._element)\n\n return SelectorEngine.findOne(Selector.MENU, parent)\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n SelectorEngine.findOne(Selector.DATA_TOGGLE, parent).focus()\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n const selector = getSelectorFromElement(this)\n const target = SelectorEngine.findOne(selector)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from '../util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from '../util/sanitizer'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide() {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n this._popper.destroy()\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n this._hideModalHandler\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport Data from '../dom/data'\nimport SelectorEngine from '../dom/selector-engine'\nimport Tooltip from '../tooltip/tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = EventHandler.trigger(this._element, Event.SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n reflow(this._element)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","cEvent","CustomEvent","bubbles","cancelable","detail","initCustomEvent","workingDefaultPrevented","e","preventDefault","defaultPrevented","origPreventDefault","Event","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","uidEventList","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","NODE_TEXT","SelectorEngine","findFn","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","hasWidth","jquery","selected","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","addAttachmentClass","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","SHOWING","autohide","Toast"],"mappings":"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"}
\ No newline at end of file diff --git a/dist/js/bootstrap.esm.min.js b/dist/js/bootstrap.esm.min.js index b482637e86..8042549dd5 100644 --- a/dist/js/bootstrap.esm.min.js +++ b/dist/js/bootstrap.esm.min.js @@ -3,5 +3,5 @@ * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ -import Popper from"popper.js";function _defineProperties(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),i.forEach(function(t){_defineProperty(e,t,n[t])})}return e}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var MAX_UID=1e6,MILLISECONDS_MULTIPLIER=1e3,TRANSITION_END="transitionend",_window=window,jQuery=_window.jQuery,toType=function(e){return{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase()},getUID=function(e){do{e+=~~(Math.random()*MAX_UID)}while(document.getElementById(e));return e},getSelectorFromElement=function(e){var t=e.getAttribute("data-target");if(!t||"#"===t){var n=e.getAttribute("href");t=n&&"#"!==n?n.trim():""}try{return document.querySelector(t)?t:null}catch(e){return null}},getTransitionDurationFromElement=function(e){if(!e)return 0;var t=window.getComputedStyle(e),n=t.transitionDuration,i=t.transitionDelay,r=parseFloat(n),a=parseFloat(i);return r||a?(n=n.split(",")[0],i=i.split(",")[0],(parseFloat(n)+parseFloat(i))*MILLISECONDS_MULTIPLIER):0},triggerTransitionEnd=function(e){var t=document.createEvent("HTMLEvents");t.initEvent(TRANSITION_END,!0,!0),e.dispatchEvent(t)},isElement=function(e){return(e[0]||e).nodeType},emulateTransitionEnd=function(e,t){var n=!1,i=t+5;e.addEventListener(TRANSITION_END,function t(){n=!0,e.removeEventListener(TRANSITION_END,t)}),setTimeout(function(){n||triggerTransitionEnd(e)},i)},typeCheckConfig=function(e,t,n){Object.keys(n).forEach(function(i){var r=n[i],a=t[i],o=a&&isElement(a)?"element":toType(a);if(!new RegExp(r).test(o))throw new Error(e.toUpperCase()+': Option "'+i+'" provided type "'+o+'" but expected type "'+r+'".')})},makeArray=function(e){return e?[].slice.call(e):[]},isVisible=function(e){return!!e&&(!!(e.style&&e.parentNode&&e.parentNode.style)&&("none"!==e.style.display&&"none"!==e.parentNode.style.display&&"hidden"!==e.style.visibility))},findShadowRoot=function e(t){if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){var n=t.getRootNode();return n instanceof ShadowRoot?n:null}return t instanceof ShadowRoot?t:t.parentNode?e(t.parentNode):null},noop=function(){return function(){}},reflow=function(e){return e.offsetHeight},mapData=function(){var e={},t=1;return{set:function(n,i,r){void 0===n.key&&(n.key={key:i,id:t},t++),e[n.key.id]=r},get:function(t,n){if(!t||void 0===t.key)return null;var i=t.key;return i.key===n?e[i.id]:null},delete:function(t,n){if(void 0!==t.key){var i=t.key;i.key===n&&(delete e[i.id],delete t.key)}}}}(),Data={setData:function(e,t,n){mapData.set(e,t,n)},getData:function(e,t){return mapData.get(e,t)},removeData:function(e,t){mapData.delete(e,t)}},_Element$prototype=Element.prototype,matches=_Element$prototype.matches,closest=_Element$prototype.closest,find=Element.prototype.querySelectorAll,findOne=Element.prototype.querySelector,createCustomEvent=function(e,t){return new CustomEvent(e,t)};"function"!=typeof window.CustomEvent&&(createCustomEvent=function(e,t){t=t||{bubbles:!1,cancelable:!1,detail:null};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n});var workingDefaultPrevented=function(){var e=document.createEvent("CustomEvent");return e.initEvent("Bootstrap",!0,!0),e.preventDefault(),e.defaultPrevented}();if(!workingDefaultPrevented){var origPreventDefault=Event.prototype.preventDefault;Event.prototype.preventDefault=function(){this.cancelable&&(origPreventDefault.call(this),Object.defineProperty(this,"defaultPrevented",{get:function(){return!0},configurable:!0}))}}var defaultPreventedPreservedOnDispatch=function(){var e=createCustomEvent("Bootstrap",{cancelable:!0}),t=document.createElement("div");return t.addEventListener("Bootstrap",function(){return null}),e.preventDefault(),t.dispatchEvent(e),e.defaultPrevented}();matches||(matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),closest||(closest=function(e){var t=this;do{if(matches.call(t,e))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return null});var scopeSelectorRegex=/:scope\b/,supportScopeQuery=function(){var e=document.createElement("div");try{e.querySelectorAll(":scope *")}catch(e){return!1}return!0}();supportScopeQuery||(find=function(e){if(!scopeSelectorRegex.test(e))return this.querySelectorAll(e);var t=Boolean(this.id);t||(this.id=getUID("scope"));var n=null;try{e=e.replace(scopeSelectorRegex,"#"+this.id),n=this.querySelectorAll(e)}finally{t||this.removeAttribute("id")}return n},findOne=function(e){if(!scopeSelectorRegex.test(e))return this.querySelector(e);var t=find.call(this,e);return void 0!==t[0]?t[0]:null});var namespaceRegex=/[^.]*(?=\..*)\.|.*/,stripNameRegex=/\..*/,keyEventRegex=/^key/,stripUidRegex=/::\d+$/,eventRegistry={},uidEvent=1,customEvents={mouseenter:"mouseover",mouseleave:"mouseout"},nativeEvents=["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"];function getUidEvent(e,t){return t&&t+"::"+uidEvent++||e.uidEvent||uidEvent++}function getEvent(e){var t=getUidEvent(e);return e.uidEvent=t,eventRegistry[t]=eventRegistry[t]||{},eventRegistry[t]}function fixEvent(e,t){null===e.which&&keyEventRegex.test(e.type)&&(e.which=null===e.charCode?e.keyCode:e.charCode),e.delegateTarget=t}function bootstrapHandler(e,t){return function n(i){return fixEvent(i,e),n.oneOff&&EventHandler.off(e,i.type,t),t.apply(e,[i])}}function bootstrapDelegationHandler(e,t,n){return function i(r){for(var a=e.querySelectorAll(t),o=r.target;o&&o!==this;o=o.parentNode)for(var s=a.length;s--;)if(a[s]===o)return fixEvent(r,o),i.oneOff&&EventHandler.off(e,r.type,n),n.apply(o,[r]);return null}}function findHandler(e,t,n){void 0===n&&(n=null);for(var i=Object.keys(e),r=0,a=i.length;r<a;r++){var o=e[i[r]];if(o.originalHandler===t&&o.delegationSelector===n)return o}return null}function normalizeParams(e,t,n){var i="string"==typeof t,r=i?n:t,a=e.replace(stripNameRegex,""),o=customEvents[a];return o&&(a=o),nativeEvents.indexOf(a)>-1||(a=e),[i,r,a]}function addHandler(e,t,n,i,r){if("string"==typeof t&&e){n||(n=i,i=null);var a=normalizeParams(t,n,i),o=a[0],s=a[1],l=a[2],c=getEvent(e),u=c[l]||(c[l]={}),E=findHandler(u,s,o?n:null);if(E)E.oneOff=E.oneOff&&r;else{var f=getUidEvent(s,t.replace(namespaceRegex,"")),d=o?bootstrapDelegationHandler(e,n,i):bootstrapHandler(e,n);d.delegationSelector=o?n:null,d.originalHandler=s,d.oneOff=r,d.uidEvent=f,u[f]=d,e.addEventListener(l,d,o)}}}function removeHandler(e,t,n,i,r){var a=findHandler(t[n],i,r);a&&(e.removeEventListener(n,a,Boolean(r)),delete t[n][a.uidEvent])}function removeNamespacedHandlers(e,t,n,i){var r=t[n]||{};Object.keys(r).forEach(function(a){if(a.indexOf(i)>-1){var o=r[a];removeHandler(e,t,n,o.originalHandler,o.delegationSelector)}})}var EventHandler={on:function(e,t,n,i){addHandler(e,t,n,i,!1)},one:function(e,t,n,i){addHandler(e,t,n,i,!0)},off:function(e,t,n,i){if("string"==typeof t&&e){var r=normalizeParams(t,n,i),a=r[0],o=r[1],s=r[2],l=s!==t,c=getEvent(e),u="."===t.charAt(0);if(void 0===o){u&&Object.keys(c).forEach(function(n){removeNamespacedHandlers(e,c,n,t.substr(1))});var E=c[s]||{};Object.keys(E).forEach(function(n){var i=n.replace(stripUidRegex,"");if(!l||t.indexOf(i)>-1){var r=E[n];removeHandler(e,c,s,r.originalHandler,r.delegationSelector)}})}else{if(!c||!c[s])return;removeHandler(e,c,s,o,a?n:null)}}},trigger:function(e,t,n){if("string"!=typeof t||!e)return null;var i,r=t.replace(stripNameRegex,""),a=t!==r,o=nativeEvents.indexOf(r)>-1,s=!0,l=!0,c=!1,u=null;return a&&void 0!==jQuery&&(i=jQuery.Event(t,n),jQuery(e).trigger(i),s=!i.isPropagationStopped(),l=!i.isImmediatePropagationStopped(),c=i.isDefaultPrevented()),o?(u=document.createEvent("HTMLEvents")).initEvent(r,s,!0):u=createCustomEvent(t,{bubbles:s,cancelable:!0}),void 0!==n&&Object.keys(n).forEach(function(e){Object.defineProperty(u,e,{get:function(){return n[e]}})}),c&&(u.preventDefault(),defaultPreventedPreservedOnDispatch||Object.defineProperty(u,"defaultPrevented",{get:function(){return!0}})),l&&e.dispatchEvent(u),u.defaultPrevented&&void 0!==i&&i.preventDefault(),u}},NODE_TEXT=3,SelectorEngine={matches:function(e,t){return matches.call(e,t)},find:function(e,t){return void 0===t&&(t=document.documentElement),"string"!=typeof e?null:find.call(t,e)},findOne:function(e,t){return void 0===t&&(t=document.documentElement),"string"!=typeof e?null:findOne.call(t,e)},children:function(e,t){var n=this;if("string"!=typeof t)return null;var i=makeArray(e.children);return i.filter(function(e){return n.matches(e,t)})},parents:function(e,t){if("string"!=typeof t)return null;for(var n=[],i=e.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&i.nodeType!==NODE_TEXT;)this.matches(i,t)&&n.push(i),i=i.parentNode;return n},closest:function(e,t){return"string"!=typeof t?null:closest.call(e,t)},prev:function(e,t){if("string"!=typeof t)return null;for(var n=[],i=e.previousSibling;i&&i.nodeType===Node.ELEMENT_NODE&&i.nodeType!==NODE_TEXT;)this.matches(i,t)&&n.push(i),i=i.previousSibling;return n}},NAME="alert",VERSION="4.3.1",DATA_KEY="bs.alert",EVENT_KEY="."+DATA_KEY,DATA_API_KEY=".data-api",Selector={DISMISS:'[data-dismiss="alert"]'},Event$1={CLOSE:"close"+EVENT_KEY,CLOSED:"closed"+EVENT_KEY,CLICK_DATA_API:"click"+EVENT_KEY+DATA_API_KEY},ClassName={ALERT:"alert",FADE:"fade",SHOW:"show"},Alert=function(){function e(e){this._element=e,this._element&&Data.setData(e,DATA_KEY,this)}var t=e.prototype;return t.close=function(e){var t=this._element;e&&(t=this._getRootElement(e));var n=this._triggerCloseEvent(t);null===n||n.defaultPrevented||this._removeElement(t)},t.dispose=function(){Data.removeData(this._element,DATA_KEY),this._element=null},t._getRootElement=function(e){var t=getSelectorFromElement(e),n=!1;return t&&(n=SelectorEngine.findOne(t)),n||(n=SelectorEngine.closest(e,"."+ClassName.ALERT)),n},t._triggerCloseEvent=function(e){return EventHandler.trigger(e,Event$1.CLOSE)},t._removeElement=function(e){var t=this;if(e.classList.remove(ClassName.SHOW),e.classList.contains(ClassName.FADE)){var n=getTransitionDurationFromElement(e);EventHandler.one(e,TRANSITION_END,function(n){return t._destroyElement(e,n)}),emulateTransitionEnd(e,n)}else this._destroyElement(e)},t._destroyElement=function(e){e.parentNode&&e.parentNode.removeChild(e),EventHandler.trigger(e,Event$1.CLOSED)},e._jQueryInterface=function(t){return this.each(function(){var n=Data.getData(this,DATA_KEY);n||(n=new e(this)),"close"===t&&n[t](this)})},e._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},e._getInstance=function(e){return Data.getData(e,DATA_KEY)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION}}]),e}();if(EventHandler.on(document,Event$1.CLICK_DATA_API,Selector.DISMISS,Alert._handleDismiss(new Alert)),void 0!==jQuery){var JQUERY_NO_CONFLICT=jQuery.fn[NAME];jQuery.fn[NAME]=Alert._jQueryInterface,jQuery.fn[NAME].Constructor=Alert,jQuery.fn[NAME].noConflict=function(){return jQuery.fn[NAME]=JQUERY_NO_CONFLICT,Alert._jQueryInterface}}var NAME$1="button",VERSION$1="4.3.1",DATA_KEY$1="bs.button",EVENT_KEY$1="."+DATA_KEY$1,DATA_API_KEY$1=".data-api",ClassName$1={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},Selector$1={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:'input:not([type="hidden"])',ACTIVE:".active",BUTTON:".btn"},Event$2={CLICK_DATA_API:"click"+EVENT_KEY$1+DATA_API_KEY$1,FOCUS_DATA_API:"focus"+EVENT_KEY$1+DATA_API_KEY$1,BLUR_DATA_API:"blur"+EVENT_KEY$1+DATA_API_KEY$1},Button=function(){function e(e){this._element=e,Data.setData(e,DATA_KEY$1,this)}var t=e.prototype;return t.toggle=function(){var e=!0,t=!0,n=SelectorEngine.closest(this._element,Selector$1.DATA_TOGGLE);if(n){var i=SelectorEngine.findOne(Selector$1.INPUT,this._element);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(ClassName$1.ACTIVE))e=!1;else{var r=SelectorEngine.findOne(Selector$1.ACTIVE,n);r&&r.classList.remove(ClassName$1.ACTIVE)}if(e){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(ClassName$1.ACTIVE),EventHandler.trigger(i,"change")}i.focus(),t=!1}}t&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(ClassName$1.ACTIVE)),e&&this._element.classList.toggle(ClassName$1.ACTIVE)},t.dispose=function(){Data.removeData(this._element,DATA_KEY$1),this._element=null},e._jQueryInterface=function(t){return this.each(function(){var n=Data.getData(this,DATA_KEY$1);n||(n=new e(this)),"toggle"===t&&n[t]()})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$1)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$1}}]),e}();if(EventHandler.on(document,Event$2.CLICK_DATA_API,Selector$1.DATA_TOGGLE_CARROT,function(e){e.preventDefault();var t=e.target;t.classList.contains(ClassName$1.BUTTON)||(t=SelectorEngine.closest(t,Selector$1.BUTTON));var n=Data.getData(t,DATA_KEY$1);n||(n=new Button(t),Data.setData(t,DATA_KEY$1,n)),n.toggle()}),EventHandler.on(document,Event$2.FOCUS_DATA_API,Selector$1.DATA_TOGGLE_CARROT,function(e){var t=SelectorEngine.closest(e.target,Selector$1.BUTTON);t&&t.classList.add(ClassName$1.FOCUS)}),EventHandler.on(document,Event$2.BLUR_DATA_API,Selector$1.DATA_TOGGLE_CARROT,function(e){var t=SelectorEngine.closest(e.target,Selector$1.BUTTON);t&&t.classList.remove(ClassName$1.FOCUS)}),void 0!==jQuery){var JQUERY_NO_CONFLICT$1=jQuery.fn[NAME$1];jQuery.fn[NAME$1]=Button._jQueryInterface,jQuery.fn[NAME$1].Constructor=Button,jQuery.fn[NAME$1].noConflict=function(){return jQuery.fn[NAME$1]=JQUERY_NO_CONFLICT$1,Button._jQueryInterface}}function normalizeData(e){return"true"===e||"false"!==e&&(e===Number(e).toString()?Number(e):""===e||"null"===e?null:e)}function normalizeDataKey(e){return e.replace(/[A-Z]/g,function(e){return e.toLowerCase()})}var Manipulator={setDataAttribute:function(e,t,n){e.setAttribute("data-"+normalizeDataKey(t),n)},removeDataAttribute:function(e,t){e.removeAttribute("data-"+normalizeDataKey(t))},getDataAttributes:function(e){if(!e)return{};var t=_objectSpread({},e.dataset);return Object.keys(t).forEach(function(e){t[e]=normalizeData(t[e])}),t},getDataAttribute:function(e,t){return normalizeData(e.getAttribute("data-"+normalizeDataKey(t)))},offset:function(e){var t=e.getBoundingClientRect();return{top:t.top+document.body.scrollTop,left:t.left+document.body.scrollLeft}},position:function(e){return{top:e.offsetTop,left:e.offsetLeft}},toggleClass:function(e,t){e&&(e.classList.contains(t)?e.classList.remove(t):e.classList.add(t))}},NAME$2="carousel",VERSION$2="4.3.1",DATA_KEY$2="bs.carousel",EVENT_KEY$2="."+DATA_KEY$2,DATA_API_KEY$2=".data-api",ARROW_LEFT_KEYCODE=37,ARROW_RIGHT_KEYCODE=39,TOUCHEVENT_COMPAT_WAIT=500,SWIPE_THRESHOLD=40,Default={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},DefaultType={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Direction={NEXT:"next",PREV:"prev",LEFT:"left",RIGHT:"right"},Event$3={SLIDE:"slide"+EVENT_KEY$2,SLID:"slid"+EVENT_KEY$2,KEYDOWN:"keydown"+EVENT_KEY$2,MOUSEENTER:"mouseenter"+EVENT_KEY$2,MOUSELEAVE:"mouseleave"+EVENT_KEY$2,TOUCHSTART:"touchstart"+EVENT_KEY$2,TOUCHMOVE:"touchmove"+EVENT_KEY$2,TOUCHEND:"touchend"+EVENT_KEY$2,POINTERDOWN:"pointerdown"+EVENT_KEY$2,POINTERUP:"pointerup"+EVENT_KEY$2,DRAG_START:"dragstart"+EVENT_KEY$2,LOAD_DATA_API:"load"+EVENT_KEY$2+DATA_API_KEY$2,CLICK_DATA_API:"click"+EVENT_KEY$2+DATA_API_KEY$2},ClassName$2={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"carousel-item-right",LEFT:"carousel-item-left",NEXT:"carousel-item-next",PREV:"carousel-item-prev",ITEM:"carousel-item",POINTER_EVENT:"pointer-event"},Selector$2={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",ITEM_IMG:".carousel-item img",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},PointerType={TOUCH:"touch",PEN:"pen"},Carousel=function(){function e(e,t){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(t),this._element=e,this._indicatorsElement=SelectorEngine.findOne(Selector$2.INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),Data.setData(e,DATA_KEY$2,this)}var t=e.prototype;return t.next=function(){this._isSliding||this._slide(Direction.NEXT)},t.nextWhenVisible=function(){!document.hidden&&isVisible(this._element)&&this.next()},t.prev=function(){this._isSliding||this._slide(Direction.PREV)},t.pause=function(e){e||(this._isPaused=!0),SelectorEngine.findOne(Selector$2.NEXT_PREV,this._element)&&(triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(e){var t=this;this._activeElement=SelectorEngine.findOne(Selector$2.ACTIVE_ITEM,this._element);var n=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)EventHandler.one(this._element,Event$3.SLID,function(){return t.to(e)});else{if(n===e)return this.pause(),void this.cycle();var i=e>n?Direction.NEXT:Direction.PREV;this._slide(i,this._items[e])}},t.dispose=function(){EventHandler.off(this._element,EVENT_KEY$2),Data.removeData(this._element,DATA_KEY$2),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(e){return e=_objectSpread({},Default,e),typeCheckConfig(NAME$2,e,DefaultType),e},t._handleSwipe=function(){var e=Math.abs(this.touchDeltaX);if(!(e<=SWIPE_THRESHOLD)){var t=e/this.touchDeltaX;this.touchDeltaX=0,t>0&&this.prev(),t<0&&this.next()}},t._addEventListeners=function(){var e=this;this._config.keyboard&&EventHandler.on(this._element,Event$3.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&(EventHandler.on(this._element,Event$3.MOUSEENTER,function(t){return e.pause(t)}),EventHandler.on(this._element,Event$3.MOUSELEAVE,function(t){return e.cycle(t)})),this._config.touch&&this._addTouchEventListeners()},t._addTouchEventListeners=function(){var e=this;if(this._touchSupported){var t=function(t){e._pointerEvent&&PointerType[t.pointerType.toUpperCase()]?e.touchStartX=t.clientX:e._pointerEvent||(e.touchStartX=t.touches[0].clientX)},n=function(t){e._pointerEvent&&PointerType[t.pointerType.toUpperCase()]&&(e.touchDeltaX=t.clientX-e.touchStartX),e._handleSwipe(),"hover"===e._config.pause&&(e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout(function(t){return e.cycle(t)},TOUCHEVENT_COMPAT_WAIT+e._config.interval))};makeArray(SelectorEngine.find(Selector$2.ITEM_IMG,this._element)).forEach(function(e){EventHandler.on(e,Event$3.DRAG_START,function(e){return e.preventDefault()})}),this._pointerEvent?(EventHandler.on(this._element,Event$3.POINTERDOWN,function(e){return t(e)}),EventHandler.on(this._element,Event$3.POINTERUP,function(e){return n(e)}),this._element.classList.add(ClassName$2.POINTER_EVENT)):(EventHandler.on(this._element,Event$3.TOUCHSTART,function(e){return t(e)}),EventHandler.on(this._element,Event$3.TOUCHMOVE,function(t){return function(t){t.touches&&t.touches.length>1?e.touchDeltaX=0:e.touchDeltaX=t.touches[0].clientX-e.touchStartX}(t)}),EventHandler.on(this._element,Event$3.TOUCHEND,function(e){return n(e)}))}},t._keydown=function(e){if(!/input|textarea/i.test(e.target.tagName))switch(e.which){case ARROW_LEFT_KEYCODE:e.preventDefault(),this.prev();break;case ARROW_RIGHT_KEYCODE:e.preventDefault(),this.next()}},t._getItemIndex=function(e){return this._items=e&&e.parentNode?makeArray(SelectorEngine.find(Selector$2.ITEM,e.parentNode)):[],this._items.indexOf(e)},t._getItemByDirection=function(e,t){var n=e===Direction.NEXT,i=e===Direction.PREV,r=this._getItemIndex(t),a=this._items.length-1;if((i&&0===r||n&&r===a)&&!this._config.wrap)return t;var o=(r+(e===Direction.PREV?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]},t._triggerSlideEvent=function(e,t){var n=this._getItemIndex(e),i=this._getItemIndex(SelectorEngine.findOne(Selector$2.ACTIVE_ITEM,this._element));return EventHandler.trigger(this._element,Event$3.SLIDE,{relatedTarget:e,direction:t,from:i,to:n})},t._setActiveIndicatorElement=function(e){if(this._indicatorsElement){for(var t=SelectorEngine.find(Selector$2.ACTIVE,this._indicatorsElement),n=0;n<t.length;n++)t[n].classList.remove(ClassName$2.ACTIVE);var i=this._indicatorsElement.children[this._getItemIndex(e)];i&&i.classList.add(ClassName$2.ACTIVE)}},t._slide=function(e,t){var n,i,r,a=this,o=SelectorEngine.findOne(Selector$2.ACTIVE_ITEM,this._element),s=this._getItemIndex(o),l=t||o&&this._getItemByDirection(e,o),c=this._getItemIndex(l),u=Boolean(this._interval);if(e===Direction.NEXT?(n=ClassName$2.LEFT,i=ClassName$2.NEXT,r=Direction.LEFT):(n=ClassName$2.RIGHT,i=ClassName$2.PREV,r=Direction.RIGHT),l&&l.classList.contains(ClassName$2.ACTIVE))this._isSliding=!1;else if(!this._triggerSlideEvent(l,r).defaultPrevented&&o&&l){if(this._isSliding=!0,u&&this.pause(),this._setActiveIndicatorElement(l),this._element.classList.contains(ClassName$2.SLIDE)){l.classList.add(i),reflow(l),o.classList.add(n),l.classList.add(n);var E=parseInt(l.getAttribute("data-interval"),10);E?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=E):this._config.interval=this._config.defaultInterval||this._config.interval;var f=getTransitionDurationFromElement(o);EventHandler.one(o,TRANSITION_END,function(){l.classList.remove(n),l.classList.remove(i),l.classList.add(ClassName$2.ACTIVE),o.classList.remove(ClassName$2.ACTIVE),o.classList.remove(i),o.classList.remove(n),a._isSliding=!1,setTimeout(function(){EventHandler.trigger(a._element,Event$3.SLID,{relatedTarget:l,direction:r,from:s,to:c})},0)}),emulateTransitionEnd(o,f)}else o.classList.remove(ClassName$2.ACTIVE),l.classList.add(ClassName$2.ACTIVE),this._isSliding=!1,EventHandler.trigger(this._element,Event$3.SLID,{relatedTarget:l,direction:r,from:s,to:c});u&&this.cycle()}},e._carouselInterface=function(t,n){var i=Data.getData(t,DATA_KEY$2),r=_objectSpread({},Default,Manipulator.getDataAttributes(t));"object"==typeof n&&(r=_objectSpread({},r,n));var a="string"==typeof n?n:r.slide;if(i||(i=new e(t,r)),"number"==typeof n)i.to(n);else if("string"==typeof a){if(void 0===i[a])throw new TypeError('No method named "'+a+'"');i[a]()}else r.interval&&r.ride&&(i.pause(),i.cycle())},e._jQueryInterface=function(t){return this.each(function(){e._carouselInterface(this,t)})},e._dataApiClickHandler=function(t){var n=getSelectorFromElement(this);if(n){var i=SelectorEngine.findOne(n);if(i&&i.classList.contains(ClassName$2.CAROUSEL)){var r=_objectSpread({},Manipulator.getDataAttributes(i),Manipulator.getDataAttributes(this)),a=this.getAttribute("data-slide-to");a&&(r.interval=!1),e._carouselInterface(i,r),a&&Data.getData(i,DATA_KEY$2).to(a),t.preventDefault()}}},e._getInstance=function(e){return Data.getData(e,DATA_KEY$2)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$2}},{key:"Default",get:function(){return Default}}]),e}();if(EventHandler.on(document,Event$3.CLICK_DATA_API,Selector$2.DATA_SLIDE,Carousel._dataApiClickHandler),EventHandler.on(window,Event$3.LOAD_DATA_API,function(){for(var e=makeArray(SelectorEngine.find(Selector$2.DATA_RIDE)),t=0,n=e.length;t<n;t++)Carousel._carouselInterface(e[t],Data.getData(e[t],DATA_KEY$2))}),void 0!==jQuery){var JQUERY_NO_CONFLICT$2=jQuery.fn[NAME$2];jQuery.fn[NAME$2]=Carousel._jQueryInterface,jQuery.fn[NAME$2].Constructor=Carousel,jQuery.fn[NAME$2].noConflict=function(){return jQuery.fn[NAME$2]=JQUERY_NO_CONFLICT$2,Carousel._jQueryInterface}}var NAME$3="collapse",VERSION$3="4.3.1",DATA_KEY$3="bs.collapse",EVENT_KEY$3="."+DATA_KEY$3,DATA_API_KEY$3=".data-api",Default$1={toggle:!0,parent:""},DefaultType$1={toggle:"boolean",parent:"(string|element)"},Event$4={SHOW:"show"+EVENT_KEY$3,SHOWN:"shown"+EVENT_KEY$3,HIDE:"hide"+EVENT_KEY$3,HIDDEN:"hidden"+EVENT_KEY$3,CLICK_DATA_API:"click"+EVENT_KEY$3+DATA_API_KEY$3},ClassName$3={SHOW:"show",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},Dimension={WIDTH:"width",HEIGHT:"height"},Selector$3={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},Collapse=function(){function e(e,t){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(t),this._triggerArray=makeArray(SelectorEngine.find('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'));for(var n=makeArray(SelectorEngine.find(Selector$3.DATA_TOGGLE)),i=0,r=n.length;i<r;i++){var a=n[i],o=getSelectorFromElement(a),s=makeArray(SelectorEngine.find(o)).filter(function(t){return t===e});null!==o&&s.length&&(this._selector=o,this._triggerArray.push(a))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle(),Data.setData(e,DATA_KEY$3,this)}var t=e.prototype;return t.toggle=function(){this._element.classList.contains(ClassName$3.SHOW)?this.hide():this.show()},t.show=function(){var t=this;if(!this._isTransitioning&&!this._element.classList.contains(ClassName$3.SHOW)){var n,i;this._parent&&0===(n=makeArray(SelectorEngine.find(Selector$3.ACTIVES,this._parent)).filter(function(e){return"string"==typeof t._config.parent?e.getAttribute("data-parent")===t._config.parent:e.classList.contains(ClassName$3.COLLAPSE)})).length&&(n=null);var r=SelectorEngine.findOne(this._selector);if(n){var a=n.filter(function(e){return r!==e});if((i=a[0]?Data.getData(a[0],DATA_KEY$3):null)&&i._isTransitioning)return}if(!EventHandler.trigger(this._element,Event$4.SHOW).defaultPrevented){n&&n.forEach(function(t){r!==t&&e._collapseInterface(t,"hide"),i||Data.setData(t,DATA_KEY$3,null)});var o=this._getDimension();this._element.classList.remove(ClassName$3.COLLAPSE),this._element.classList.add(ClassName$3.COLLAPSING),this._element.style[o]=0,this._triggerArray.length&&this._triggerArray.forEach(function(e){e.classList.remove(ClassName$3.COLLAPSED),e.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);var s="scroll"+(o[0].toUpperCase()+o.slice(1)),l=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,function(){t._element.classList.remove(ClassName$3.COLLAPSING),t._element.classList.add(ClassName$3.COLLAPSE),t._element.classList.add(ClassName$3.SHOW),t._element.style[o]="",t.setTransitioning(!1),EventHandler.trigger(t._element,Event$4.SHOWN)}),emulateTransitionEnd(this._element,l),this._element.style[o]=this._element[s]+"px"}}},t.hide=function(){var e=this;if(!this._isTransitioning&&this._element.classList.contains(ClassName$3.SHOW)&&!EventHandler.trigger(this._element,Event$4.HIDE).defaultPrevented){var t=this._getDimension();this._element.style[t]=this._element.getBoundingClientRect()[t]+"px",reflow(this._element),this._element.classList.add(ClassName$3.COLLAPSING),this._element.classList.remove(ClassName$3.COLLAPSE),this._element.classList.remove(ClassName$3.SHOW);var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var r=this._triggerArray[i],a=getSelectorFromElement(r);if(null!==a)SelectorEngine.findOne(a).classList.contains(ClassName$3.SHOW)||(r.classList.add(ClassName$3.COLLAPSED),r.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[t]="";var o=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,function(){e.setTransitioning(!1),e._element.classList.remove(ClassName$3.COLLAPSING),e._element.classList.add(ClassName$3.COLLAPSE),EventHandler.trigger(e._element,Event$4.HIDDEN)}),emulateTransitionEnd(this._element,o)}},t.setTransitioning=function(e){this._isTransitioning=e},t.dispose=function(){Data.removeData(this._element,DATA_KEY$3),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},t._getConfig=function(e){return(e=_objectSpread({},Default$1,e)).toggle=Boolean(e.toggle),typeCheckConfig(NAME$3,e,DefaultType$1),e},t._getDimension=function(){return this._element.classList.contains(Dimension.WIDTH)?Dimension.WIDTH:Dimension.HEIGHT},t._getParent=function(){var t=this,n=this._config.parent;isElement(n)?void 0===n.jquery&&void 0===n[0]||(n=n[0]):n=SelectorEngine.findOne(n);var i='[data-toggle="collapse"][data-parent="'+n+'"]';return makeArray(SelectorEngine.find(i,n)).forEach(function(n){t._addAriaAndCollapsedClass(e._getTargetFromElement(n),[n])}),n},t._addAriaAndCollapsedClass=function(e,t){if(e){var n=e.classList.contains(ClassName$3.SHOW);t.length&&t.forEach(function(e){n?e.classList.remove(ClassName$3.COLLAPSED):e.classList.add(ClassName$3.COLLAPSED),e.setAttribute("aria-expanded",n)})}},e._getTargetFromElement=function(e){var t=getSelectorFromElement(e);return t?SelectorEngine.findOne(t):null},e._collapseInterface=function(t,n){var i=Data.getData(t,DATA_KEY$3),r=_objectSpread({},Default$1,Manipulator.getDataAttributes(t),"object"==typeof n&&n?n:{});if(!i&&r.toggle&&/show|hide/.test(n)&&(r.toggle=!1),i||(i=new e(t,r)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},e._jQueryInterface=function(t){return this.each(function(){e._collapseInterface(this,t)})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$3)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$3}},{key:"Default",get:function(){return Default$1}}]),e}();if(EventHandler.on(document,Event$4.CLICK_DATA_API,Selector$3.DATA_TOGGLE,function(e){"A"===e.target.tagName&&e.preventDefault();var t=Manipulator.getDataAttributes(this),n=getSelectorFromElement(this);makeArray(SelectorEngine.find(n)).forEach(function(e){var n,i=Data.getData(e,DATA_KEY$3);i?(null===i._parent&&"string"==typeof t.parent&&(i._config.parent=t.parent,i._parent=i._getParent()),n="toggle"):n=t,Collapse._collapseInterface(e,n)})}),void 0!==jQuery){var JQUERY_NO_CONFLICT$3=jQuery.fn[NAME$3];jQuery.fn[NAME$3]=Collapse._jQueryInterface,jQuery.fn[NAME$3].Constructor=Collapse,jQuery.fn[NAME$3].noConflict=function(){return jQuery.fn[NAME$3]=JQUERY_NO_CONFLICT$3,Collapse._jQueryInterface}}var NAME$4="dropdown",VERSION$4="4.3.1",DATA_KEY$4="bs.dropdown",EVENT_KEY$4="."+DATA_KEY$4,DATA_API_KEY$4=".data-api",ESCAPE_KEYCODE=27,SPACE_KEYCODE=32,TAB_KEYCODE=9,ARROW_UP_KEYCODE=38,ARROW_DOWN_KEYCODE=40,RIGHT_MOUSE_BUTTON_WHICH=3,REGEXP_KEYDOWN=new RegExp(ARROW_UP_KEYCODE+"|"+ARROW_DOWN_KEYCODE+"|"+ESCAPE_KEYCODE),Event$5={HIDE:"hide"+EVENT_KEY$4,HIDDEN:"hidden"+EVENT_KEY$4,SHOW:"show"+EVENT_KEY$4,SHOWN:"shown"+EVENT_KEY$4,CLICK:"click"+EVENT_KEY$4,CLICK_DATA_API:"click"+EVENT_KEY$4+DATA_API_KEY$4,KEYDOWN_DATA_API:"keydown"+EVENT_KEY$4+DATA_API_KEY$4,KEYUP_DATA_API:"keyup"+EVENT_KEY$4+DATA_API_KEY$4},ClassName$4={DISABLED:"disabled",SHOW:"show",DROPUP:"dropup",DROPRIGHT:"dropright",DROPLEFT:"dropleft",MENURIGHT:"dropdown-menu-right",POSITION_STATIC:"position-static"},Selector$4={DATA_TOGGLE:'[data-toggle="dropdown"]',FORM_CHILD:".dropdown form",MENU:".dropdown-menu",NAVBAR_NAV:".navbar-nav",VISIBLE_ITEMS:".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)"},AttachmentMap={TOP:"top-start",TOPEND:"top-end",BOTTOM:"bottom-start",BOTTOMEND:"bottom-end",RIGHT:"right-start",RIGHTEND:"right-end",LEFT:"left-start",LEFTEND:"left-end"},Default$2={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},DefaultType$2={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Dropdown=function(){function e(e,t){this._element=e,this._popper=null,this._config=this._getConfig(t),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners(),Data.setData(e,DATA_KEY$4,this)}var t=e.prototype;return t.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains(ClassName$4.DISABLED)){var t=e._getParentFromElement(this._element),n=this._menu.classList.contains(ClassName$4.SHOW);if(e._clearMenus(),!n){var i={relatedTarget:this._element};if(!EventHandler.trigger(t,Event$5.SHOW,i).defaultPrevented){if(!this._inNavbar){if(void 0===Popper)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var r=this._element;"parent"===this._config.reference?r=t:isElement(this._config.reference)&&(r=this._config.reference,void 0!==this._config.reference.jquery&&(r=this._config.reference[0])),"scrollParent"!==this._config.boundary&&t.classList.add(ClassName$4.POSITION_STATIC),this._popper=new Popper(r,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&!makeArray(SelectorEngine.closest(t,Selector$4.NAVBAR_NAV)).length&&makeArray(document.body.children).forEach(function(e){return EventHandler.on(e,"mouseover",null,noop())}),this._element.focus(),this._element.setAttribute("aria-expanded",!0),Manipulator.toggleClass(this._menu,ClassName$4.SHOW),Manipulator.toggleClass(t,ClassName$4.SHOW),EventHandler.trigger(t,Event$5.SHOWN,i)}}}},t.show=function(){if(!(this._element.disabled||this._element.classList.contains(ClassName$4.DISABLED)||this._menu.classList.contains(ClassName$4.SHOW))){var t=e._getParentFromElement(this._element),n={relatedTarget:this._element};EventHandler.trigger(t,Event$5.SHOW,n).defaultPrevented||(Manipulator.toggleClass(this._menu,ClassName$4.SHOW),Manipulator.toggleClass(t,ClassName$4.SHOW),EventHandler.trigger(t,Event$5.SHOWN,n))}},t.hide=function(){if(!this._element.disabled&&!this._element.classList.contains(ClassName$4.DISABLED)&&this._menu.classList.contains(ClassName$4.SHOW)){var t=e._getParentFromElement(this._element),n={relatedTarget:this._element};EventHandler.trigger(t,Event$5.HIDE,n).defaultPrevented||(Manipulator.toggleClass(this._menu,ClassName$4.SHOW),Manipulator.toggleClass(t,ClassName$4.SHOW),EventHandler.trigger(t,Event$5.HIDDEN,n))}},t.dispose=function(){Data.removeData(this._element,DATA_KEY$4),EventHandler.off(this._element,EVENT_KEY$4),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;EventHandler.on(this._element,Event$5.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},t._getConfig=function(e){return e=_objectSpread({},this.constructor.Default,Manipulator.getDataAttributes(this._element),e),typeCheckConfig(NAME$4,e,this.constructor.DefaultType),e},t._getMenuElement=function(){if(!this._menu){var t=e._getParentFromElement(this._element);t&&(this._menu=SelectorEngine.findOne(Selector$4.MENU,t))}return this._menu},t._getPlacement=function(){var e=this._element.parentNode,t=AttachmentMap.BOTTOM;return e.classList.contains(ClassName$4.DROPUP)?(t=AttachmentMap.TOP,this._menu.classList.contains(ClassName$4.MENURIGHT)&&(t=AttachmentMap.TOPEND)):e.classList.contains(ClassName$4.DROPRIGHT)?t=AttachmentMap.RIGHT:e.classList.contains(ClassName$4.DROPLEFT)?t=AttachmentMap.LEFT:this._menu.classList.contains(ClassName$4.MENURIGHT)&&(t=AttachmentMap.BOTTOMEND),t},t._detectNavbar=function(){return Boolean(SelectorEngine.closest(this._element,".navbar"))},t._getOffset=function(){var e=this,t={};return"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=_objectSpread({},t.offsets,e._config.offset(t.offsets,e._element)||{}),t}:t.offset=this._config.offset,t},t._getPopperConfig=function(){var e={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(e.modifiers.applyStyle={enabled:!1}),e},e._dropdownInterface=function(t,n){var i=Data.getData(t,DATA_KEY$4);if(i||(i=new e(t,"object"==typeof n?n:null)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},e._jQueryInterface=function(t){return this.each(function(){e._dropdownInterface(this,t)})},e._clearMenus=function(t){if(!t||t.which!==RIGHT_MOUSE_BUTTON_WHICH&&("keyup"!==t.type||t.which===TAB_KEYCODE))for(var n=makeArray(SelectorEngine.find(Selector$4.DATA_TOGGLE)),i=0,r=n.length;i<r;i++){var a=e._getParentFromElement(n[i]),o=Data.getData(n[i],DATA_KEY$4),s={relatedTarget:n[i]};if(t&&"click"===t.type&&(s.clickEvent=t),o){var l=o._menu;if(a.classList.contains(ClassName$4.SHOW))if(!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&t.which===TAB_KEYCODE)&&a.contains(t.target)))EventHandler.trigger(a,Event$5.HIDE,s).defaultPrevented||("ontouchstart"in document.documentElement&&makeArray(document.body.children).forEach(function(e){return EventHandler.off(e,"mouseover",null,noop())}),n[i].setAttribute("aria-expanded","false"),l.classList.remove(ClassName$4.SHOW),a.classList.remove(ClassName$4.SHOW),EventHandler.trigger(a,Event$5.HIDDEN,s))}}},e._getParentFromElement=function(e){var t,n=getSelectorFromElement(e);return n&&(t=SelectorEngine.findOne(n)),t||e.parentNode},e._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(t.which===SPACE_KEYCODE||t.which!==ESCAPE_KEYCODE&&(t.which!==ARROW_DOWN_KEYCODE&&t.which!==ARROW_UP_KEYCODE||SelectorEngine.closest(t.target,Selector$4.MENU))):REGEXP_KEYDOWN.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!this.classList.contains(ClassName$4.DISABLED))){var n=e._getParentFromElement(this),i=n.classList.contains(ClassName$4.SHOW);if(!i||i&&(t.which===ESCAPE_KEYCODE||t.which===SPACE_KEYCODE))return t.which===ESCAPE_KEYCODE&&SelectorEngine.findOne(Selector$4.DATA_TOGGLE,n).focus(),void e._clearMenus();var r=makeArray(SelectorEngine.find(Selector$4.VISIBLE_ITEMS,n));if(r.length){var a=r.indexOf(t.target);t.which===ARROW_UP_KEYCODE&&a>0&&a--,t.which===ARROW_DOWN_KEYCODE&&a<r.length-1&&a++,a<0&&(a=0),r[a].focus()}}},e._getInstance=function(e){return Data.getData(e,DATA_KEY$4)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$4}},{key:"Default",get:function(){return Default$2}},{key:"DefaultType",get:function(){return DefaultType$2}}]),e}();if(EventHandler.on(document,Event$5.KEYDOWN_DATA_API,Selector$4.DATA_TOGGLE,Dropdown._dataApiKeydownHandler),EventHandler.on(document,Event$5.KEYDOWN_DATA_API,Selector$4.MENU,Dropdown._dataApiKeydownHandler),EventHandler.on(document,Event$5.CLICK_DATA_API,Dropdown._clearMenus),EventHandler.on(document,Event$5.KEYUP_DATA_API,Dropdown._clearMenus),EventHandler.on(document,Event$5.CLICK_DATA_API,Selector$4.DATA_TOGGLE,function(e){e.preventDefault(),e.stopPropagation(),Dropdown._dropdownInterface(this,"toggle")}),EventHandler.on(document,Event$5.CLICK_DATA_API,Selector$4.FORM_CHILD,function(e){return e.stopPropagation()}),void 0!==jQuery){var JQUERY_NO_CONFLICT$4=jQuery.fn[NAME$4];jQuery.fn[NAME$4]=Dropdown._jQueryInterface,jQuery.fn[NAME$4].Constructor=Dropdown,jQuery.fn[NAME$4].noConflict=function(){return jQuery.fn[NAME$4]=JQUERY_NO_CONFLICT$4,Dropdown._jQueryInterface}}var NAME$5="modal",VERSION$5="4.3.1",DATA_KEY$5="bs.modal",EVENT_KEY$5="."+DATA_KEY$5,DATA_API_KEY$5=".data-api",ESCAPE_KEYCODE$1=27,Default$3={backdrop:!0,keyboard:!0,focus:!0,show:!0},DefaultType$3={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Event$6={HIDE:"hide"+EVENT_KEY$5,HIDDEN:"hidden"+EVENT_KEY$5,SHOW:"show"+EVENT_KEY$5,SHOWN:"shown"+EVENT_KEY$5,FOCUSIN:"focusin"+EVENT_KEY$5,RESIZE:"resize"+EVENT_KEY$5,CLICK_DISMISS:"click.dismiss"+EVENT_KEY$5,KEYDOWN_DISMISS:"keydown.dismiss"+EVENT_KEY$5,MOUSEUP_DISMISS:"mouseup.dismiss"+EVENT_KEY$5,MOUSEDOWN_DISMISS:"mousedown.dismiss"+EVENT_KEY$5,CLICK_DATA_API:"click"+EVENT_KEY$5+DATA_API_KEY$5},ClassName$5={SCROLLABLE:"modal-dialog-scrollable",SCROLLBAR_MEASURER:"modal-scrollbar-measure",BACKDROP:"modal-backdrop",OPEN:"modal-open",FADE:"fade",SHOW:"show"},Selector$5={DIALOG:".modal-dialog",MODAL_BODY:".modal-body",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top"},Modal=function(){function e(e,t){this._config=this._getConfig(t),this._element=e,this._dialog=SelectorEngine.findOne(Selector$5.DIALOG,e),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,Data.setData(e,DATA_KEY$5,this)}var t=e.prototype;return t.toggle=function(e){return this._isShown?this.hide():this.show(e)},t.show=function(e){var t=this;if(!this._isShown&&!this._isTransitioning){this._element.classList.contains(ClassName$5.FADE)&&(this._isTransitioning=!0);var n=EventHandler.trigger(this._element,Event$6.SHOW,{relatedTarget:e});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.on(this._element,Event$6.CLICK_DISMISS,Selector$5.DATA_DISMISS,function(e){return t.hide(e)}),EventHandler.on(this._dialog,Event$6.MOUSEDOWN_DISMISS,function(){EventHandler.one(t._element,Event$6.MOUSEUP_DISMISS,function(e){e.target===t._element&&(t._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return t._showElement(e)}))}},t.hide=function(e){var t=this;if(e&&e.preventDefault(),this._isShown&&!this._isTransitioning){var n=EventHandler.trigger(this._element,Event$6.HIDE);if(this._isShown&&!n.defaultPrevented){this._isShown=!1;var i=this._element.classList.contains(ClassName$5.FADE);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.off(document,Event$6.FOCUSIN),this._element.classList.remove(ClassName$5.SHOW),EventHandler.off(this._element,Event$6.CLICK_DISMISS),EventHandler.off(this._dialog,Event$6.MOUSEDOWN_DISMISS),i){var r=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,function(e){return t._hideModal(e)}),emulateTransitionEnd(this._element,r)}else this._hideModal()}}},t.dispose=function(){[window,this._element,this._dialog].forEach(function(e){return EventHandler.off(e,EVENT_KEY$5)}),EventHandler.off(document,Event$6.FOCUSIN),Data.removeData(this._element,DATA_KEY$5),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},t.handleUpdate=function(){this._adjustDialog()},t._getConfig=function(e){return e=_objectSpread({},Default$3,e),typeCheckConfig(NAME$5,e,DefaultType$3),e},t._showElement=function(e){var t=this,n=this._element.classList.contains(ClassName$5.FADE);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._dialog.classList.contains(ClassName$5.SCROLLABLE)?SelectorEngine.findOne(Selector$5.MODAL_BODY,this._dialog).scrollTop=0:this._element.scrollTop=0,n&&reflow(this._element),this._element.classList.add(ClassName$5.SHOW),this._config.focus&&this._enforceFocus();var i=function(){t._config.focus&&t._element.focus(),t._isTransitioning=!1,EventHandler.trigger(t._element,Event$6.SHOWN,{relatedTarget:e})};if(n){var r=getTransitionDurationFromElement(this._dialog);EventHandler.one(this._dialog,TRANSITION_END,i),emulateTransitionEnd(this._dialog,r)}else i()},t._enforceFocus=function(){var e=this;EventHandler.off(document,Event$6.FOCUSIN),EventHandler.on(document,Event$6.FOCUSIN,function(t){document===t.target||e._element===t.target||e._element.contains(t.target)||e._element.focus()})},t._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?EventHandler.on(this._element,Event$6.KEYDOWN_DISMISS,function(t){t.which===ESCAPE_KEYCODE$1&&(t.preventDefault(),e.hide())}):this._isShown||EventHandler.off(this._element,Event$6.KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?EventHandler.on(window,Event$6.RESIZE,function(t){return e.handleUpdate(t)}):EventHandler.off(window,Event$6.RESIZE)},t._hideModal=function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){document.body.classList.remove(ClassName$5.OPEN),e._resetAdjustments(),e._resetScrollbar(),EventHandler.trigger(e._element,Event$6.HIDDEN)})},t._removeBackdrop=function(){this._backdrop&&(this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null)},t._showBackdrop=function(e){var t=this,n=this._element.classList.contains(ClassName$5.FADE)?ClassName$5.FADE:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=ClassName$5.BACKDROP,n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),EventHandler.on(this._element,Event$6.CLICK_DISMISS,function(e){t._ignoreBackdropClick?t._ignoreBackdropClick=!1:e.target===e.currentTarget&&("static"===t._config.backdrop?t._element.focus():t.hide())}),n&&reflow(this._backdrop),this._backdrop.classList.add(ClassName$5.SHOW),!e)return;if(!n)return void e();var i=getTransitionDurationFromElement(this._backdrop);EventHandler.one(this._backdrop,TRANSITION_END,e),emulateTransitionEnd(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove(ClassName$5.SHOW);var r=function(){t._removeBackdrop(),e&&e()};if(this._element.classList.contains(ClassName$5.FADE)){var a=getTransitionDurationFromElement(this._backdrop);EventHandler.one(this._backdrop,TRANSITION_END,r),emulateTransitionEnd(this._backdrop,a)}else r()}else e&&e()},t._adjustDialog=function(){var e=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&e&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!e&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var e=document.body.getBoundingClientRect();this._isBodyOverflowing=e.left+e.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},t._setScrollbar=function(){var e=this;if(this._isBodyOverflowing){makeArray(SelectorEngine.find(Selector$5.FIXED_CONTENT)).forEach(function(t){var n=t.style.paddingRight,i=window.getComputedStyle(t)["padding-right"];Manipulator.setDataAttribute(t,"padding-right",n),t.style.paddingRight=parseFloat(i)+e._scrollbarWidth+"px"}),makeArray(SelectorEngine.find(Selector$5.STICKY_CONTENT)).forEach(function(t){var n=t.style.marginRight,i=window.getComputedStyle(t)["margin-right"];Manipulator.setDataAttribute(t,"margin-right",n),t.style.marginRight=parseFloat(i)-e._scrollbarWidth+"px"});var t=document.body.style.paddingRight,n=window.getComputedStyle(document.body)["padding-right"];Manipulator.setDataAttribute(document.body,"padding-right",t),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add(ClassName$5.OPEN)},t._resetScrollbar=function(){makeArray(SelectorEngine.find(Selector$5.FIXED_CONTENT)).forEach(function(e){var t=Manipulator.getDataAttribute(e,"padding-right");void 0!==t&&(Manipulator.removeDataAttribute(e,"padding-right"),e.style.paddingRight=t)}),makeArray(SelectorEngine.find(""+Selector$5.STICKY_CONTENT)).forEach(function(e){var t=Manipulator.getDataAttribute(e,"margin-right");void 0!==t&&(Manipulator.removeDataAttribute(e,"margin-right"),e.style.marginRight=t)});var e=Manipulator.getDataAttribute(document.body,"padding-right");void 0===e?document.body.style.paddingRight="":(Manipulator.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=e)},t._getScrollbarWidth=function(){var e=document.createElement("div");e.className=ClassName$5.SCROLLBAR_MEASURER,document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t},e._jQueryInterface=function(t,n){return this.each(function(){var i=Data.getData(this,DATA_KEY$5),r=_objectSpread({},Default$3,Manipulator.getDataAttributes(this),"object"==typeof t&&t?t:{});if(i||(i=new e(this,r)),"string"==typeof t){if(void 0===i[t])throw new TypeError('No method named "'+t+'"');i[t](n)}else r.show&&i.show(n)})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$5)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$5}},{key:"Default",get:function(){return Default$3}}]),e}();if(EventHandler.on(document,Event$6.CLICK_DATA_API,Selector$5.DATA_TOGGLE,function(e){var t,n=this,i=getSelectorFromElement(this);i&&(t=SelectorEngine.findOne(i));var r=Data.getData(t,DATA_KEY$5)?"toggle":_objectSpread({},Manipulator.getDataAttributes(t),Manipulator.getDataAttributes(this));"A"!==this.tagName&&"AREA"!==this.tagName||e.preventDefault(),EventHandler.one(t,Event$6.SHOW,function(e){e.defaultPrevented||EventHandler.one(t,Event$6.HIDDEN,function(){isVisible(n)&&n.focus()})});var a=Data.getData(t,DATA_KEY$5);a||(a=new Modal(t,r)),a.show(this)}),void 0!==jQuery){var JQUERY_NO_CONFLICT$5=jQuery.fn[NAME$5];jQuery.fn[NAME$5]=Modal._jQueryInterface,jQuery.fn[NAME$5].Constructor=Modal,jQuery.fn[NAME$5].noConflict=function(){return jQuery.fn[NAME$5]=JQUERY_NO_CONFLICT$5,Modal._jQueryInterface}}var uriAttrs=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],ARIA_ATTRIBUTE_PATTERN=/^aria-[\w-]*$/i,SAFE_URL_PATTERN=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,DATA_URL_PATTERN=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,allowedAttribute=function(e,t){var n=e.nodeName.toLowerCase();if(-1!==t.indexOf(n))return-1===uriAttrs.indexOf(n)||Boolean(e.nodeValue.match(SAFE_URL_PATTERN)||e.nodeValue.match(DATA_URL_PATTERN));for(var i=t.filter(function(e){return e instanceof RegExp}),r=0,a=i.length;r<a;r++)if(n.match(i[r]))return!0;return!1},DefaultWhitelist={"*":["class","dir","id","lang","role",ARIA_ATTRIBUTE_PATTERN],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function sanitizeHtml(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);for(var i=(new window.DOMParser).parseFromString(e,"text/html"),r=Object.keys(t),a=makeArray(i.body.querySelectorAll("*")),o=function(e,n){var i=a[e],o=i.nodeName.toLowerCase();if(-1===r.indexOf(o))return i.parentNode.removeChild(i),"continue";var s=makeArray(i.attributes),l=[].concat(t["*"]||[],t[o]||[]);s.forEach(function(e){allowedAttribute(e,l)||i.removeAttribute(e.nodeName)})},s=0,l=a.length;s<l;s++)o(s);return i.body.innerHTML}var NAME$6="tooltip",VERSION$6="4.3.1",DATA_KEY$6="bs.tooltip",EVENT_KEY$6="."+DATA_KEY$6,CLASS_PREFIX="bs-tooltip",BSCLS_PREFIX_REGEX=new RegExp("(^|\\s)"+CLASS_PREFIX+"\\S+","g"),DISALLOWED_ATTRIBUTES=["sanitize","whiteList","sanitizeFn"],DefaultType$4={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},AttachmentMap$1={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Default$4={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:DefaultWhitelist},HoverState={SHOW:"show",OUT:"out"},Event$7={HIDE:"hide"+EVENT_KEY$6,HIDDEN:"hidden"+EVENT_KEY$6,SHOW:"show"+EVENT_KEY$6,SHOWN:"shown"+EVENT_KEY$6,INSERTED:"inserted"+EVENT_KEY$6,CLICK:"click"+EVENT_KEY$6,FOCUSIN:"focusin"+EVENT_KEY$6,FOCUSOUT:"focusout"+EVENT_KEY$6,MOUSEENTER:"mouseenter"+EVENT_KEY$6,MOUSELEAVE:"mouseleave"+EVENT_KEY$6},ClassName$6={FADE:"fade",SHOW:"show"},Selector$6={TOOLTIP_INNER:".tooltip-inner"},Trigger={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},Tooltip=function(){function e(e,t){if(void 0===Popper)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=e,this.config=this._getConfig(t),this.tip=null,this._setListeners(),Data.setData(e,this.constructor.DATA_KEY,this)}var t=e.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(e){if(this._isEnabled)if(e){var t=this.constructor.DATA_KEY,n=Data.getData(e.delegateTarget,t);n||(n=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.setData(e.delegateTarget,t,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(ClassName$6.SHOW))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),Data.removeData(this.element,this.constructor.DATA_KEY),EventHandler.off(this.element,this.constructor.EVENT_KEY),EventHandler.off(SelectorEngine.closest(this.element,".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var t=EventHandler.trigger(this.element,this.constructor.Event.SHOW),n=findShadowRoot(this.element),i=null===n?this.element.ownerDocument.documentElement.contains(this.element):n.contains(this.element);if(t.defaultPrevented||!i)return;var r=this.getTipElement(),a=getUID(this.constructor.NAME);r.setAttribute("id",a),this.element.setAttribute("aria-describedby",a),this.setContent(),this.config.animation&&r.classList.add(ClassName$6.FADE);var o="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,s=this._getAttachment(o);this.addAttachmentClass(s);var l=this._getContainer();Data.setData(r,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||l.appendChild(r),EventHandler.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new Popper(this.element,r,{placement:s,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:"."+this.constructor.NAME+"-arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),r.classList.add(ClassName$6.SHOW),"ontouchstart"in document.documentElement&&makeArray(document.body.children).forEach(function(e){EventHandler.on(e,"mouseover",noop())});var c=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,EventHandler.trigger(e.element,e.constructor.Event.SHOWN),t===HoverState.OUT&&e._leave(null,e)};if(this.tip.classList.contains(ClassName$6.FADE)){var u=getTransitionDurationFromElement(this.tip);EventHandler.one(this.tip,TRANSITION_END,c),emulateTransitionEnd(this.tip,u)}else c()}},t.hide=function(e){var t=this,n=this.getTipElement(),i=function(){t._hoverState!==HoverState.SHOW&&n.parentNode&&n.parentNode.removeChild(n),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),EventHandler.trigger(t.element,t.constructor.Event.HIDDEN),null!==t._popper&&t._popper.destroy(),e&&e()};if(!EventHandler.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){if(n.classList.remove(ClassName$6.SHOW),"ontouchstart"in document.documentElement&&makeArray(document.body.children).forEach(function(e){return EventHandler.off(e,"mouseover",noop)}),this._activeTrigger[Trigger.CLICK]=!1,this._activeTrigger[Trigger.FOCUS]=!1,this._activeTrigger[Trigger.HOVER]=!1,this.tip.classList.contains(ClassName$6.FADE)){var r=getTransitionDurationFromElement(n);EventHandler.one(n,TRANSITION_END,i),emulateTransitionEnd(n,r)}else i();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(e){this.getTipElement().classList.add(CLASS_PREFIX+"-"+e)},t.getTipElement=function(){if(this.tip)return this.tip;var e=document.createElement("div");return e.innerHTML=this.config.template,this.tip=e.children[0],this.tip},t.setContent=function(){var e=this.getTipElement();this.setElementContent(SelectorEngine.findOne(Selector$6.TOOLTIP_INNER,e),this.getTitle()),e.classList.remove(ClassName$6.FADE),e.classList.remove(ClassName$6.SHOW)},t.setElementContent=function(e,t){if(null!==e)return"object"==typeof t&&(t.nodeType||t.jquery)?(t.jquery&&(t=t[0]),void(this.config.html?t.parentNode!==e&&(e.innerHTML="",e.appendChild(t)):e.innerText=t.textContent)):void(this.config.html?(this.config.sanitize&&(t=sanitizeHtml(t,this.config.whiteList,this.config.sanitizeFn)),e.innerHTML=t):e.innerText=t)},t.getTitle=function(){var e=this.element.getAttribute("data-original-title");return e||(e="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),e},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=_objectSpread({},t.offsets,e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:isElement(this.config.container)?this.config.container:SelectorEngine.findOne(this.config.container)},t._getAttachment=function(e){return AttachmentMap$1[e.toUpperCase()]},t._setListeners=function(){var e=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)EventHandler.on(e.element,e.constructor.Event.CLICK,e.config.selector,function(t){return e.toggle(t)});else if(t!==Trigger.MANUAL){var n=t===Trigger.HOVER?e.constructor.Event.MOUSEENTER:e.constructor.Event.FOCUSIN,i=t===Trigger.HOVER?e.constructor.Event.MOUSELEAVE:e.constructor.Event.FOCUSOUT;EventHandler.on(e.element,n,e.config.selector,function(t){return e._enter(t)}),EventHandler.on(e.element,i,e.config.selector,function(t){return e._leave(t)})}}),this._hideModalHandler=function(){e.element&&e.hide()},EventHandler.on(SelectorEngine.closest(this.element,".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=_objectSpread({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var e=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==e)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(e,t){var n=this.constructor.DATA_KEY;(t=t||Data.getData(e.delegateTarget,n))||(t=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.setData(e.delegateTarget,n,t)),e&&(t._activeTrigger["focusin"===e.type?Trigger.FOCUS:Trigger.HOVER]=!0),t.getTipElement().classList.contains(ClassName$6.SHOW)||t._hoverState===HoverState.SHOW?t._hoverState=HoverState.SHOW:(clearTimeout(t._timeout),t._hoverState=HoverState.SHOW,t.config.delay&&t.config.delay.show?t._timeout=setTimeout(function(){t._hoverState===HoverState.SHOW&&t.show()},t.config.delay.show):t.show())},t._leave=function(e,t){var n=this.constructor.DATA_KEY;(t=t||Data.getData(e.delegateTarget,n))||(t=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.setData(e.delegateTarget,n,t)),e&&(t._activeTrigger["focusout"===e.type?Trigger.FOCUS:Trigger.HOVER]=!1),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=HoverState.OUT,t.config.delay&&t.config.delay.hide?t._timeout=setTimeout(function(){t._hoverState===HoverState.OUT&&t.hide()},t.config.delay.hide):t.hide())},t._isWithActiveTrigger=function(){for(var e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1},t._getConfig=function(e){var t=Manipulator.getDataAttributes(this.element);return Object.keys(t).forEach(function(e){-1!==DISALLOWED_ATTRIBUTES.indexOf(e)&&delete t[e]}),e&&"object"==typeof e.container&&e.container.jquery&&(e.container=e.container[0]),"number"==typeof(e=_objectSpread({},this.constructor.Default,t,"object"==typeof e&&e?e:{})).delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),typeCheckConfig(NAME$6,e,this.constructor.DefaultType),e.sanitize&&(e.template=sanitizeHtml(e.template,e.whiteList,e.sanitizeFn)),e},t._getDelegateConfig=function(){var e={};if(this.config)for(var t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e},t._cleanTipClass=function(){var e=this.getTipElement(),t=e.getAttribute("class").match(BSCLS_PREFIX_REGEX);null!==t&&t.length&&t.map(function(e){return e.trim()}).forEach(function(t){return e.classList.remove(t)})},t._handlePopperPlacementChange=function(e){var t=e.instance;this.tip=t.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(e.placement))},t._fixTransition=function(){var e=this.getTipElement(),t=this.config.animation;null===e.getAttribute("x-placement")&&(e.classList.remove(ClassName$6.FADE),this.config.animation=!1,this.hide(),this.show(),this.config.animation=t)},e._jQueryInterface=function(t){return this.each(function(){var n=Data.getData(this,DATA_KEY$6),i="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new e(this,i)),"string"==typeof t)){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$6)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$6}},{key:"Default",get:function(){return Default$4}},{key:"NAME",get:function(){return NAME$6}},{key:"DATA_KEY",get:function(){return DATA_KEY$6}},{key:"Event",get:function(){return Event$7}},{key:"EVENT_KEY",get:function(){return EVENT_KEY$6}},{key:"DefaultType",get:function(){return DefaultType$4}}]),e}();if(void 0!==jQuery){var JQUERY_NO_CONFLICT$6=jQuery.fn[NAME$6];jQuery.fn[NAME$6]=Tooltip._jQueryInterface,jQuery.fn[NAME$6].Constructor=Tooltip,jQuery.fn[NAME$6].noConflict=function(){return jQuery.fn[NAME$6]=JQUERY_NO_CONFLICT$6,Tooltip._jQueryInterface}}var NAME$7="popover",VERSION$7="4.3.1",DATA_KEY$7="bs.popover",EVENT_KEY$7="."+DATA_KEY$7,CLASS_PREFIX$1="bs-popover",BSCLS_PREFIX_REGEX$1=new RegExp("(^|\\s)"+CLASS_PREFIX$1+"\\S+","g"),Default$5=_objectSpread({},Tooltip.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),DefaultType$5=_objectSpread({},Tooltip.DefaultType,{content:"(string|element|function)"}),ClassName$7={FADE:"fade",SHOW:"show"},Selector$7={TITLE:".popover-header",CONTENT:".popover-body"},Event$8={HIDE:"hide"+EVENT_KEY$7,HIDDEN:"hidden"+EVENT_KEY$7,SHOW:"show"+EVENT_KEY$7,SHOWN:"shown"+EVENT_KEY$7,INSERTED:"inserted"+EVENT_KEY$7,CLICK:"click"+EVENT_KEY$7,FOCUSIN:"focusin"+EVENT_KEY$7,FOCUSOUT:"focusout"+EVENT_KEY$7,MOUSEENTER:"mouseenter"+EVENT_KEY$7,MOUSELEAVE:"mouseleave"+EVENT_KEY$7},Popover=function(e){function t(){return e.apply(this,arguments)||this}_inheritsLoose(t,e);var n=t.prototype;return n.isWithContent=function(){return this.getTitle()||this._getContent()},n.addAttachmentClass=function(e){this.getTipElement().classList.add(CLASS_PREFIX$1+"-"+e)},n.setContent=function(){var e=this.getTipElement();this.setElementContent(SelectorEngine.findOne(Selector$7.TITLE,e),this.getTitle());var t=this._getContent();"function"==typeof t&&(t=t.call(this.element)),this.setElementContent(SelectorEngine.findOne(Selector$7.CONTENT,e),t),e.classList.remove(ClassName$7.FADE),e.classList.remove(ClassName$7.SHOW)},n._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},n._cleanTipClass=function(){var e=this.getTipElement(),t=e.getAttribute("class").match(BSCLS_PREFIX_REGEX$1);null!==t&&t.length>0&&t.map(function(e){return e.trim()}).forEach(function(t){return e.classList.remove(t)})},t._jQueryInterface=function(e){return this.each(function(){var n=Data.getData(this,DATA_KEY$7),i="object"==typeof e?e:null;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,i),Data.setData(this,DATA_KEY$7,n)),"string"==typeof e)){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(e){return Data.getData(e,DATA_KEY$7)},_createClass(t,null,[{key:"VERSION",get:function(){return VERSION$7}},{key:"Default",get:function(){return Default$5}},{key:"NAME",get:function(){return NAME$7}},{key:"DATA_KEY",get:function(){return DATA_KEY$7}},{key:"Event",get:function(){return Event$8}},{key:"EVENT_KEY",get:function(){return EVENT_KEY$7}},{key:"DefaultType",get:function(){return DefaultType$5}}]),t}(Tooltip);if(void 0!==jQuery){var JQUERY_NO_CONFLICT$7=jQuery.fn[NAME$7];jQuery.fn[NAME$7]=Popover._jQueryInterface,jQuery.fn[NAME$7].Constructor=Popover,jQuery.fn[NAME$7].noConflict=function(){return jQuery.fn[NAME$7]=JQUERY_NO_CONFLICT$7,Popover._jQueryInterface}}var NAME$8="scrollspy",VERSION$8="4.3.1",DATA_KEY$8="bs.scrollspy",EVENT_KEY$8="."+DATA_KEY$8,DATA_API_KEY$6=".data-api",Default$6={offset:10,method:"auto",target:""},DefaultType$6={offset:"number",method:"string",target:"(string|element)"},Event$9={ACTIVATE:"activate"+EVENT_KEY$8,SCROLL:"scroll"+EVENT_KEY$8,LOAD_DATA_API:"load"+EVENT_KEY$8+DATA_API_KEY$6},ClassName$8={DROPDOWN_ITEM:"dropdown-item",ACTIVE:"active"},Selector$8={DATA_SPY:'[data-spy="scroll"]',NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_TOGGLE:".dropdown-toggle"},OffsetMethod={OFFSET:"offset",POSITION:"position"},ScrollSpy=function(){function e(e,t){var n=this;this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(t),this._selector=this._config.target+" "+Selector$8.NAV_LINKS+","+this._config.target+" "+Selector$8.LIST_ITEMS+","+this._config.target+" ."+ClassName$8.DROPDOWN_ITEM,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,EventHandler.on(this._scrollElement,Event$9.SCROLL,function(e){return n._process(e)}),this.refresh(),this._process(),Data.setData(e,DATA_KEY$8,this)}var t=e.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?OffsetMethod.OFFSET:OffsetMethod.POSITION,n="auto"===this._config.method?t:this._config.method,i=n===OffsetMethod.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),makeArray(SelectorEngine.find(this._selector)).map(function(e){var t,r=getSelectorFromElement(e);if(r&&(t=SelectorEngine.findOne(r)),t){var a=t.getBoundingClientRect();if(a.width||a.height)return[Manipulator[n](t).top+i,r]}return null}).filter(function(e){return e}).sort(function(e,t){return e[0]-t[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},t.dispose=function(){Data.removeData(this._element,DATA_KEY$8),EventHandler.off(this._scrollElement,EVENT_KEY$8),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(e){if("string"!=typeof(e=_objectSpread({},Default$6,"object"==typeof e&&e?e:{})).target){var t=e.target.id;t||(t=getUID(NAME$8),e.target.id=t),e.target="#"+t}return typeCheckConfig(NAME$8,e,DefaultType$6),e},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),e>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&e<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var r=this._offsets.length;r--;){this._activeTarget!==this._targets[r]&&e>=this._offsets[r]&&(void 0===this._offsets[r+1]||e<this._offsets[r+1])&&this._activate(this._targets[r])}}},t._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",").map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'}),n=SelectorEngine.findOne(t.join(","));n.classList.contains(ClassName$8.DROPDOWN_ITEM)?(SelectorEngine.findOne(Selector$8.DROPDOWN_TOGGLE,SelectorEngine.closest(n,Selector$8.DROPDOWN)).classList.add(ClassName$8.ACTIVE),n.classList.add(ClassName$8.ACTIVE)):(n.classList.add(ClassName$8.ACTIVE),SelectorEngine.parents(n,Selector$8.NAV_LIST_GROUP).forEach(function(e){SelectorEngine.prev(e,Selector$8.NAV_LINKS+", "+Selector$8.LIST_ITEMS).forEach(function(e){return e.classList.add(ClassName$8.ACTIVE)}),SelectorEngine.prev(e,Selector$8.NAV_ITEMS).forEach(function(e){SelectorEngine.children(e,Selector$8.NAV_LINKS).forEach(function(e){return e.classList.add(ClassName$8.ACTIVE)})})})),EventHandler.trigger(this._scrollElement,Event$9.ACTIVATE,{relatedTarget:e})},t._clear=function(){makeArray(SelectorEngine.find(this._selector)).filter(function(e){return e.classList.contains(ClassName$8.ACTIVE)}).forEach(function(e){return e.classList.remove(ClassName$8.ACTIVE)})},e._jQueryInterface=function(t){return this.each(function(){var n=Data.getData(this,DATA_KEY$8);if(n||(n=new e(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$8)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$8}},{key:"Default",get:function(){return Default$6}}]),e}();if(EventHandler.on(window,Event$9.LOAD_DATA_API,function(){makeArray(SelectorEngine.find(Selector$8.DATA_SPY)).forEach(function(e){return new ScrollSpy(e,Manipulator.getDataAttributes(e))})}),void 0!==jQuery){var JQUERY_NO_CONFLICT$8=jQuery.fn[NAME$8];jQuery.fn[NAME$8]=ScrollSpy._jQueryInterface,jQuery.fn[NAME$8].Constructor=ScrollSpy,jQuery.fn[NAME$8].noConflict=function(){return jQuery.fn[NAME$8]=JQUERY_NO_CONFLICT$8,ScrollSpy._jQueryInterface}}var NAME$9="tab",VERSION$9="4.3.1",DATA_KEY$9="bs.tab",EVENT_KEY$9="."+DATA_KEY$9,DATA_API_KEY$7=".data-api",Event$a={HIDE:"hide"+EVENT_KEY$9,HIDDEN:"hidden"+EVENT_KEY$9,SHOW:"show"+EVENT_KEY$9,SHOWN:"shown"+EVENT_KEY$9,CLICK_DATA_API:"click"+EVENT_KEY$9+DATA_API_KEY$7},ClassName$9={DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active",DISABLED:"disabled",FADE:"fade",SHOW:"show"},Selector$9={DROPDOWN:".dropdown",NAV_LIST_GROUP:".nav, .list-group",ACTIVE:".active",ACTIVE_UL:":scope > li > .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',DROPDOWN_TOGGLE:".dropdown-toggle",DROPDOWN_ACTIVE_CHILD:":scope > .dropdown-menu .active"},Tab=function(){function e(e){this._element=e,Data.setData(this._element,DATA_KEY$9,this)}var t=e.prototype;return t.show=function(){var e=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(ClassName$9.ACTIVE)||this._element.classList.contains(ClassName$9.DISABLED))){var t,n,i=SelectorEngine.closest(this._element,Selector$9.NAV_LIST_GROUP),r=getSelectorFromElement(this._element);if(i){var a="UL"===i.nodeName||"OL"===i.nodeName?Selector$9.ACTIVE_UL:Selector$9.ACTIVE;n=(n=makeArray(SelectorEngine.find(a,i)))[n.length-1]}var o=null;if(n&&(o=EventHandler.trigger(n,Event$a.HIDE,{relatedTarget:this._element})),!(EventHandler.trigger(this._element,Event$a.SHOW,{relatedTarget:n}).defaultPrevented||null!==o&&o.defaultPrevented)){r&&(t=SelectorEngine.findOne(r)),this._activate(this._element,i);var s=function(){EventHandler.trigger(n,Event$a.HIDDEN,{relatedTarget:e._element}),EventHandler.trigger(e._element,Event$a.SHOWN,{relatedTarget:n})};t?this._activate(t,t.parentNode,s):s()}}},t.dispose=function(){Data.removeData(this._element,DATA_KEY$9),this._element=null},t._activate=function(e,t,n){var i=this,r=(!t||"UL"!==t.nodeName&&"OL"!==t.nodeName?SelectorEngine.children(t,Selector$9.ACTIVE):SelectorEngine.find(Selector$9.ACTIVE_UL,t))[0],a=n&&r&&r.classList.contains(ClassName$9.FADE),o=function(){return i._transitionComplete(e,r,n)};if(r&&a){var s=getTransitionDurationFromElement(r);r.classList.remove(ClassName$9.SHOW),EventHandler.one(r,TRANSITION_END,o),emulateTransitionEnd(r,s)}else o()},t._transitionComplete=function(e,t,n){if(t){t.classList.remove(ClassName$9.ACTIVE);var i=SelectorEngine.findOne(Selector$9.DROPDOWN_ACTIVE_CHILD,t.parentNode);i&&i.classList.remove(ClassName$9.ACTIVE),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}(e.classList.add(ClassName$9.ACTIVE),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),reflow(e),e.classList.contains(ClassName$9.FADE)&&e.classList.add(ClassName$9.SHOW),e.parentNode&&e.parentNode.classList.contains(ClassName$9.DROPDOWN_MENU))&&(SelectorEngine.closest(e,Selector$9.DROPDOWN)&&makeArray(SelectorEngine.find(Selector$9.DROPDOWN_TOGGLE)).forEach(function(e){return e.classList.add(ClassName$9.ACTIVE)}),e.setAttribute("aria-expanded",!0));n&&n()},e._jQueryInterface=function(t){return this.each(function(){var n=Data.getData(this,DATA_KEY$9)||new e(this);if("string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$9)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$9}}]),e}();if(EventHandler.on(document,Event$a.CLICK_DATA_API,Selector$9.DATA_TOGGLE,function(e){e.preventDefault(),(Data.getData(this,DATA_KEY$9)||new Tab(this)).show()}),void 0!==jQuery){var JQUERY_NO_CONFLICT$9=jQuery.fn[NAME$9];jQuery.fn[NAME$9]=Tab._jQueryInterface,jQuery.fn[NAME$9].Constructor=Tab,jQuery.fn[NAME$9].noConflict=function(){return jQuery.fn[NAME$9]=JQUERY_NO_CONFLICT$9,Tab._jQueryInterface}}var NAME$a="toast",VERSION$a="4.3.1",DATA_KEY$a="bs.toast",EVENT_KEY$a="."+DATA_KEY$a,Event$b={CLICK_DISMISS:"click.dismiss"+EVENT_KEY$a,HIDE:"hide"+EVENT_KEY$a,HIDDEN:"hidden"+EVENT_KEY$a,SHOW:"show"+EVENT_KEY$a,SHOWN:"shown"+EVENT_KEY$a},ClassName$a={FADE:"fade",HIDE:"hide",SHOW:"show",SHOWING:"showing"},DefaultType$7={animation:"boolean",autohide:"boolean",delay:"number"},Default$7={animation:!0,autohide:!0,delay:500},Selector$a={DATA_DISMISS:'[data-dismiss="toast"]'},Toast=function(){function e(e,t){this._element=e,this._config=this._getConfig(t),this._timeout=null,this._setListeners(),Data.setData(e,DATA_KEY$a,this)}var t=e.prototype;return t.show=function(){var e=this;if(!EventHandler.trigger(this._element,Event$b.SHOW).defaultPrevented){this._config.animation&&this._element.classList.add(ClassName$a.FADE);var t=function(){e._element.classList.remove(ClassName$a.SHOWING),e._element.classList.add(ClassName$a.SHOW),EventHandler.trigger(e._element,Event$b.SHOWN),e._config.autohide&&(e._timeout=setTimeout(function(){e.hide()},e._config.delay))};if(this._element.classList.remove(ClassName$a.HIDE),this._element.classList.add(ClassName$a.SHOWING),this._config.animation){var n=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,t),emulateTransitionEnd(this._element,n)}else t()}},t.hide=function(){var e=this;if(this._element.classList.contains(ClassName$a.SHOW)&&!EventHandler.trigger(this._element,Event$b.HIDE).defaultPrevented){var t=function(){e._element.classList.add(ClassName$a.HIDE),EventHandler.trigger(e._element,Event$b.HIDDEN)};if(this._element.classList.remove(ClassName$a.SHOW),this._config.animation){var n=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,t),emulateTransitionEnd(this._element,n)}else t()}},t.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(ClassName$a.SHOW)&&this._element.classList.remove(ClassName$a.SHOW),EventHandler.off(this._element,Event$b.CLICK_DISMISS),Data.removeData(this._element,DATA_KEY$a),this._element=null,this._config=null},t._getConfig=function(e){return e=_objectSpread({},Default$7,Manipulator.getDataAttributes(this._element),"object"==typeof e&&e?e:{}),typeCheckConfig(NAME$a,e,this.constructor.DefaultType),e},t._setListeners=function(){var e=this;EventHandler.on(this._element,Event$b.CLICK_DISMISS,Selector$a.DATA_DISMISS,function(){return e.hide()})},e._jQueryInterface=function(t){return this.each(function(){var n=Data.getData(this,DATA_KEY$a);if(n||(n=new e(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t](this)}})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$a)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$a}},{key:"DefaultType",get:function(){return DefaultType$7}},{key:"Default",get:function(){return Default$7}}]),e}();if(void 0!==jQuery){var JQUERY_NO_CONFLICT$a=jQuery.fn[NAME$a];jQuery.fn[NAME$a]=Toast._jQueryInterface,jQuery.fn[NAME$a].Constructor=Toast,jQuery.fn[NAME$a].noConflict=function(){return jQuery.fn[NAME$a]=JQUERY_NO_CONFLICT$a,Toast._jQueryInterface}}export{Alert,Button,Carousel,Collapse,Dropdown,Modal,Popover,ScrollSpy,Tab,Toast,Tooltip}; +import Popper from"popper.js";function _defineProperties(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function _createClass(e,t,n){return t&&_defineProperties(e.prototype,t),n&&_defineProperties(e,n),e}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,i)}return n}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(n,!0).forEach(function(t){_defineProperty(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var MAX_UID=1e6,MILLISECONDS_MULTIPLIER=1e3,TRANSITION_END="transitionend",_window=window,jQuery=_window.jQuery,toType=function(e){return{}.toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase()},getUID=function(e){do{e+=~~(Math.random()*MAX_UID)}while(document.getElementById(e));return e},getSelectorFromElement=function(e){var t=e.getAttribute("data-target");if(!t||"#"===t){var n=e.getAttribute("href");t=n&&"#"!==n?n.trim():""}try{return document.querySelector(t)?t:null}catch(e){return null}},getTransitionDurationFromElement=function(e){if(!e)return 0;var t=window.getComputedStyle(e),n=t.transitionDuration,i=t.transitionDelay,r=parseFloat(n),a=parseFloat(i);return r||a?(n=n.split(",")[0],i=i.split(",")[0],(parseFloat(n)+parseFloat(i))*MILLISECONDS_MULTIPLIER):0},triggerTransitionEnd=function(e){var t=document.createEvent("HTMLEvents");t.initEvent(TRANSITION_END,!0,!0),e.dispatchEvent(t)},isElement=function(e){return(e[0]||e).nodeType},emulateTransitionEnd=function(e,t){var n=!1,i=t+5;e.addEventListener(TRANSITION_END,function t(){n=!0,e.removeEventListener(TRANSITION_END,t)}),setTimeout(function(){n||triggerTransitionEnd(e)},i)},typeCheckConfig=function(e,t,n){Object.keys(n).forEach(function(i){var r=n[i],a=t[i],o=a&&isElement(a)?"element":toType(a);if(!new RegExp(r).test(o))throw new Error(e.toUpperCase()+': Option "'+i+'" provided type "'+o+'" but expected type "'+r+'".')})},makeArray=function(e){return e?[].slice.call(e):[]},isVisible=function(e){return!!e&&(!!(e.style&&e.parentNode&&e.parentNode.style)&&("none"!==e.style.display&&"none"!==e.parentNode.style.display&&"hidden"!==e.style.visibility))},findShadowRoot=function e(t){if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){var n=t.getRootNode();return n instanceof ShadowRoot?n:null}return t instanceof ShadowRoot?t:t.parentNode?e(t.parentNode):null},noop=function(){return function(){}},reflow=function(e){return e.offsetHeight},mapData=function(){var e={},t=1;return{set:function(n,i,r){void 0===n.key&&(n.key={key:i,id:t},t++),e[n.key.id]=r},get:function(t,n){if(!t||void 0===t.key)return null;var i=t.key;return i.key===n?e[i.id]:null},delete:function(t,n){if(void 0!==t.key){var i=t.key;i.key===n&&(delete e[i.id],delete t.key)}}}}(),Data={setData:function(e,t,n){mapData.set(e,t,n)},getData:function(e,t){return mapData.get(e,t)},removeData:function(e,t){mapData.delete(e,t)}},_Element$prototype=Element.prototype,matches=_Element$prototype.matches,closest=_Element$prototype.closest,find=Element.prototype.querySelectorAll,findOne=Element.prototype.querySelector,createCustomEvent=function(e,t){return new CustomEvent(e,t)};"function"!=typeof window.CustomEvent&&(createCustomEvent=function(e,t){t=t||{bubbles:!1,cancelable:!1,detail:null};var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n});var workingDefaultPrevented=function(){var e=document.createEvent("CustomEvent");return e.initEvent("Bootstrap",!0,!0),e.preventDefault(),e.defaultPrevented}();if(!workingDefaultPrevented){var origPreventDefault=Event.prototype.preventDefault;Event.prototype.preventDefault=function(){this.cancelable&&(origPreventDefault.call(this),Object.defineProperty(this,"defaultPrevented",{get:function(){return!0},configurable:!0}))}}var defaultPreventedPreservedOnDispatch=function(){var e=createCustomEvent("Bootstrap",{cancelable:!0}),t=document.createElement("div");return t.addEventListener("Bootstrap",function(){return null}),e.preventDefault(),t.dispatchEvent(e),e.defaultPrevented}();matches||(matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),closest||(closest=function(e){var t=this;do{if(matches.call(t,e))return t;t=t.parentElement||t.parentNode}while(null!==t&&1===t.nodeType);return null});var scopeSelectorRegex=/:scope\b/,supportScopeQuery=function(){var e=document.createElement("div");try{e.querySelectorAll(":scope *")}catch(e){return!1}return!0}();supportScopeQuery||(find=function(e){if(!scopeSelectorRegex.test(e))return this.querySelectorAll(e);var t=Boolean(this.id);t||(this.id=getUID("scope"));var n=null;try{e=e.replace(scopeSelectorRegex,"#"+this.id),n=this.querySelectorAll(e)}finally{t||this.removeAttribute("id")}return n},findOne=function(e){if(!scopeSelectorRegex.test(e))return this.querySelector(e);var t=find.call(this,e);return void 0!==t[0]?t[0]:null});var namespaceRegex=/[^.]*(?=\..*)\.|.*/,stripNameRegex=/\..*/,keyEventRegex=/^key/,stripUidRegex=/::\d+$/,eventRegistry={},uidEvent=1,customEvents={mouseenter:"mouseover",mouseleave:"mouseout"},nativeEvents=["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"];function getUidEvent(e,t){return t&&t+"::"+uidEvent++||e.uidEvent||uidEvent++}function getEvent(e){var t=getUidEvent(e);return e.uidEvent=t,eventRegistry[t]=eventRegistry[t]||{},eventRegistry[t]}function fixEvent(e,t){null===e.which&&keyEventRegex.test(e.type)&&(e.which=null===e.charCode?e.keyCode:e.charCode),e.delegateTarget=t}function bootstrapHandler(e,t){return function n(i){return fixEvent(i,e),n.oneOff&&EventHandler.off(e,i.type,t),t.apply(e,[i])}}function bootstrapDelegationHandler(e,t,n){return function i(r){for(var a=e.querySelectorAll(t),o=r.target;o&&o!==this;o=o.parentNode)for(var s=a.length;s--;)if(a[s]===o)return fixEvent(r,o),i.oneOff&&EventHandler.off(e,r.type,n),n.apply(o,[r]);return null}}function findHandler(e,t,n){void 0===n&&(n=null);for(var i=Object.keys(e),r=0,a=i.length;r<a;r++){var o=e[i[r]];if(o.originalHandler===t&&o.delegationSelector===n)return o}return null}function normalizeParams(e,t,n){var i="string"==typeof t,r=i?n:t,a=e.replace(stripNameRegex,""),o=customEvents[a];return o&&(a=o),nativeEvents.indexOf(a)>-1||(a=e),[i,r,a]}function addHandler(e,t,n,i,r){if("string"==typeof t&&e){n||(n=i,i=null);var a=normalizeParams(t,n,i),o=a[0],s=a[1],l=a[2],c=getEvent(e),u=c[l]||(c[l]={}),E=findHandler(u,s,o?n:null);if(E)E.oneOff=E.oneOff&&r;else{var d=getUidEvent(s,t.replace(namespaceRegex,"")),f=o?bootstrapDelegationHandler(e,n,i):bootstrapHandler(e,n);f.delegationSelector=o?n:null,f.originalHandler=s,f.oneOff=r,f.uidEvent=d,u[d]=f,e.addEventListener(l,f,o)}}}function removeHandler(e,t,n,i,r){var a=findHandler(t[n],i,r);a&&(e.removeEventListener(n,a,Boolean(r)),delete t[n][a.uidEvent])}function removeNamespacedHandlers(e,t,n,i){var r=t[n]||{};Object.keys(r).forEach(function(a){if(a.indexOf(i)>-1){var o=r[a];removeHandler(e,t,n,o.originalHandler,o.delegationSelector)}})}var EventHandler={on:function(e,t,n,i){addHandler(e,t,n,i,!1)},one:function(e,t,n,i){addHandler(e,t,n,i,!0)},off:function(e,t,n,i){if("string"==typeof t&&e){var r=normalizeParams(t,n,i),a=r[0],o=r[1],s=r[2],l=s!==t,c=getEvent(e),u="."===t.charAt(0);if(void 0===o){u&&Object.keys(c).forEach(function(n){removeNamespacedHandlers(e,c,n,t.substr(1))});var E=c[s]||{};Object.keys(E).forEach(function(n){var i=n.replace(stripUidRegex,"");if(!l||t.indexOf(i)>-1){var r=E[n];removeHandler(e,c,s,r.originalHandler,r.delegationSelector)}})}else{if(!c||!c[s])return;removeHandler(e,c,s,o,a?n:null)}}},trigger:function(e,t,n){if("string"!=typeof t||!e)return null;var i,r=t.replace(stripNameRegex,""),a=t!==r,o=nativeEvents.indexOf(r)>-1,s=!0,l=!0,c=!1,u=null;return a&&void 0!==jQuery&&(i=jQuery.Event(t,n),jQuery(e).trigger(i),s=!i.isPropagationStopped(),l=!i.isImmediatePropagationStopped(),c=i.isDefaultPrevented()),o?(u=document.createEvent("HTMLEvents")).initEvent(r,s,!0):u=createCustomEvent(t,{bubbles:s,cancelable:!0}),void 0!==n&&Object.keys(n).forEach(function(e){Object.defineProperty(u,e,{get:function(){return n[e]}})}),c&&(u.preventDefault(),defaultPreventedPreservedOnDispatch||Object.defineProperty(u,"defaultPrevented",{get:function(){return!0}})),l&&e.dispatchEvent(u),u.defaultPrevented&&void 0!==i&&i.preventDefault(),u}},NODE_TEXT=3,SelectorEngine={matches:function(e,t){return matches.call(e,t)},find:function(e,t){return void 0===t&&(t=document.documentElement),find.call(t,e)},findOne:function(e,t){return void 0===t&&(t=document.documentElement),findOne.call(t,e)},children:function(e,t){var n=this,i=makeArray(e.children);return i.filter(function(e){return n.matches(e,t)})},parents:function(e,t){for(var n=[],i=e.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&i.nodeType!==NODE_TEXT;)this.matches(i,t)&&n.push(i),i=i.parentNode;return n},closest:function(e,t){return closest.call(e,t)},prev:function(e,t){for(var n=[],i=e.previousSibling;i&&i.nodeType===Node.ELEMENT_NODE&&i.nodeType!==NODE_TEXT;)this.matches(i,t)&&n.push(i),i=i.previousSibling;return n}},NAME="alert",VERSION="4.3.1",DATA_KEY="bs.alert",EVENT_KEY="."+DATA_KEY,DATA_API_KEY=".data-api",Selector={DISMISS:'[data-dismiss="alert"]'},Event$1={CLOSE:"close"+EVENT_KEY,CLOSED:"closed"+EVENT_KEY,CLICK_DATA_API:"click"+EVENT_KEY+DATA_API_KEY},ClassName={ALERT:"alert",FADE:"fade",SHOW:"show"},Alert=function(){function e(e){this._element=e,this._element&&Data.setData(e,DATA_KEY,this)}var t=e.prototype;return t.close=function(e){var t=this._element;e&&(t=this._getRootElement(e));var n=this._triggerCloseEvent(t);null===n||n.defaultPrevented||this._removeElement(t)},t.dispose=function(){Data.removeData(this._element,DATA_KEY),this._element=null},t._getRootElement=function(e){var t=getSelectorFromElement(e),n=!1;return t&&(n=SelectorEngine.findOne(t)),n||(n=SelectorEngine.closest(e,"."+ClassName.ALERT)),n},t._triggerCloseEvent=function(e){return EventHandler.trigger(e,Event$1.CLOSE)},t._removeElement=function(e){var t=this;if(e.classList.remove(ClassName.SHOW),e.classList.contains(ClassName.FADE)){var n=getTransitionDurationFromElement(e);EventHandler.one(e,TRANSITION_END,function(){return t._destroyElement(e)}),emulateTransitionEnd(e,n)}else this._destroyElement(e)},t._destroyElement=function(e){e.parentNode&&e.parentNode.removeChild(e),EventHandler.trigger(e,Event$1.CLOSED)},e._jQueryInterface=function(t){return this.each(function(){var n=Data.getData(this,DATA_KEY);n||(n=new e(this)),"close"===t&&n[t](this)})},e._handleDismiss=function(e){return function(t){t&&t.preventDefault(),e.close(this)}},e._getInstance=function(e){return Data.getData(e,DATA_KEY)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION}}]),e}();if(EventHandler.on(document,Event$1.CLICK_DATA_API,Selector.DISMISS,Alert._handleDismiss(new Alert)),void 0!==jQuery){var JQUERY_NO_CONFLICT=jQuery.fn[NAME];jQuery.fn[NAME]=Alert._jQueryInterface,jQuery.fn[NAME].Constructor=Alert,jQuery.fn[NAME].noConflict=function(){return jQuery.fn[NAME]=JQUERY_NO_CONFLICT,Alert._jQueryInterface}}var NAME$1="button",VERSION$1="4.3.1",DATA_KEY$1="bs.button",EVENT_KEY$1="."+DATA_KEY$1,DATA_API_KEY$1=".data-api",ClassName$1={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},Selector$1={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:'input:not([type="hidden"])',ACTIVE:".active",BUTTON:".btn"},Event$2={CLICK_DATA_API:"click"+EVENT_KEY$1+DATA_API_KEY$1,FOCUS_DATA_API:"focus"+EVENT_KEY$1+DATA_API_KEY$1,BLUR_DATA_API:"blur"+EVENT_KEY$1+DATA_API_KEY$1},Button=function(){function e(e){this._element=e,Data.setData(e,DATA_KEY$1,this)}var t=e.prototype;return t.toggle=function(){var e=!0,t=!0,n=SelectorEngine.closest(this._element,Selector$1.DATA_TOGGLE);if(n){var i=SelectorEngine.findOne(Selector$1.INPUT,this._element);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(ClassName$1.ACTIVE))e=!1;else{var r=SelectorEngine.findOne(Selector$1.ACTIVE,n);r&&r.classList.remove(ClassName$1.ACTIVE)}if(e){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(ClassName$1.ACTIVE),EventHandler.trigger(i,"change")}i.focus(),t=!1}}t&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(ClassName$1.ACTIVE)),e&&this._element.classList.toggle(ClassName$1.ACTIVE)},t.dispose=function(){Data.removeData(this._element,DATA_KEY$1),this._element=null},e._jQueryInterface=function(t){return this.each(function(){var n=Data.getData(this,DATA_KEY$1);n||(n=new e(this)),"toggle"===t&&n[t]()})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$1)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$1}}]),e}();if(EventHandler.on(document,Event$2.CLICK_DATA_API,Selector$1.DATA_TOGGLE_CARROT,function(e){e.preventDefault();var t=e.target;t.classList.contains(ClassName$1.BUTTON)||(t=SelectorEngine.closest(t,Selector$1.BUTTON));var n=Data.getData(t,DATA_KEY$1);n||(n=new Button(t)),n.toggle()}),EventHandler.on(document,Event$2.FOCUS_DATA_API,Selector$1.DATA_TOGGLE_CARROT,function(e){var t=SelectorEngine.closest(e.target,Selector$1.BUTTON);t&&t.classList.add(ClassName$1.FOCUS)}),EventHandler.on(document,Event$2.BLUR_DATA_API,Selector$1.DATA_TOGGLE_CARROT,function(e){var t=SelectorEngine.closest(e.target,Selector$1.BUTTON);t&&t.classList.remove(ClassName$1.FOCUS)}),void 0!==jQuery){var JQUERY_NO_CONFLICT$1=jQuery.fn[NAME$1];jQuery.fn[NAME$1]=Button._jQueryInterface,jQuery.fn[NAME$1].Constructor=Button,jQuery.fn[NAME$1].noConflict=function(){return jQuery.fn[NAME$1]=JQUERY_NO_CONFLICT$1,Button._jQueryInterface}}function normalizeData(e){return"true"===e||"false"!==e&&(e===Number(e).toString()?Number(e):""===e||"null"===e?null:e)}function normalizeDataKey(e){return e.replace(/[A-Z]/g,function(e){return e.toLowerCase()})}var Manipulator={setDataAttribute:function(e,t,n){e.setAttribute("data-"+normalizeDataKey(t),n)},removeDataAttribute:function(e,t){e.removeAttribute("data-"+normalizeDataKey(t))},getDataAttributes:function(e){if(!e)return{};var t=_objectSpread2({},e.dataset);return Object.keys(t).forEach(function(e){t[e]=normalizeData(t[e])}),t},getDataAttribute:function(e,t){return normalizeData(e.getAttribute("data-"+normalizeDataKey(t)))},offset:function(e){var t=e.getBoundingClientRect();return{top:t.top+document.body.scrollTop,left:t.left+document.body.scrollLeft}},position:function(e){return{top:e.offsetTop,left:e.offsetLeft}},toggleClass:function(e,t){e&&(e.classList.contains(t)?e.classList.remove(t):e.classList.add(t))}},NAME$2="carousel",VERSION$2="4.3.1",DATA_KEY$2="bs.carousel",EVENT_KEY$2="."+DATA_KEY$2,DATA_API_KEY$2=".data-api",ARROW_LEFT_KEYCODE=37,ARROW_RIGHT_KEYCODE=39,TOUCHEVENT_COMPAT_WAIT=500,SWIPE_THRESHOLD=40,Default={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},DefaultType={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Direction={NEXT:"next",PREV:"prev",LEFT:"left",RIGHT:"right"},Event$3={SLIDE:"slide"+EVENT_KEY$2,SLID:"slid"+EVENT_KEY$2,KEYDOWN:"keydown"+EVENT_KEY$2,MOUSEENTER:"mouseenter"+EVENT_KEY$2,MOUSELEAVE:"mouseleave"+EVENT_KEY$2,TOUCHSTART:"touchstart"+EVENT_KEY$2,TOUCHMOVE:"touchmove"+EVENT_KEY$2,TOUCHEND:"touchend"+EVENT_KEY$2,POINTERDOWN:"pointerdown"+EVENT_KEY$2,POINTERUP:"pointerup"+EVENT_KEY$2,DRAG_START:"dragstart"+EVENT_KEY$2,LOAD_DATA_API:"load"+EVENT_KEY$2+DATA_API_KEY$2,CLICK_DATA_API:"click"+EVENT_KEY$2+DATA_API_KEY$2},ClassName$2={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"carousel-item-right",LEFT:"carousel-item-left",NEXT:"carousel-item-next",PREV:"carousel-item-prev",ITEM:"carousel-item",POINTER_EVENT:"pointer-event"},Selector$2={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",ITEM_IMG:".carousel-item img",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},PointerType={TOUCH:"touch",PEN:"pen"},Carousel=function(){function e(e,t){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(t),this._element=e,this._indicatorsElement=SelectorEngine.findOne(Selector$2.INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),Data.setData(e,DATA_KEY$2,this)}var t=e.prototype;return t.next=function(){this._isSliding||this._slide(Direction.NEXT)},t.nextWhenVisible=function(){!document.hidden&&isVisible(this._element)&&this.next()},t.prev=function(){this._isSliding||this._slide(Direction.PREV)},t.pause=function(e){e||(this._isPaused=!0),SelectorEngine.findOne(Selector$2.NEXT_PREV,this._element)&&(triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},t.cycle=function(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},t.to=function(e){var t=this;this._activeElement=SelectorEngine.findOne(Selector$2.ACTIVE_ITEM,this._element);var n=this._getItemIndex(this._activeElement);if(!(e>this._items.length-1||e<0))if(this._isSliding)EventHandler.one(this._element,Event$3.SLID,function(){return t.to(e)});else{if(n===e)return this.pause(),void this.cycle();var i=e>n?Direction.NEXT:Direction.PREV;this._slide(i,this._items[e])}},t.dispose=function(){EventHandler.off(this._element,EVENT_KEY$2),Data.removeData(this._element,DATA_KEY$2),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},t._getConfig=function(e){return e=_objectSpread2({},Default,{},e),typeCheckConfig(NAME$2,e,DefaultType),e},t._handleSwipe=function(){var e=Math.abs(this.touchDeltaX);if(!(e<=SWIPE_THRESHOLD)){var t=e/this.touchDeltaX;this.touchDeltaX=0,t>0&&this.prev(),t<0&&this.next()}},t._addEventListeners=function(){var e=this;this._config.keyboard&&EventHandler.on(this._element,Event$3.KEYDOWN,function(t){return e._keydown(t)}),"hover"===this._config.pause&&(EventHandler.on(this._element,Event$3.MOUSEENTER,function(t){return e.pause(t)}),EventHandler.on(this._element,Event$3.MOUSELEAVE,function(t){return e.cycle(t)})),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},t._addTouchEventListeners=function(){var e=this,t=function(t){e._pointerEvent&&PointerType[t.pointerType.toUpperCase()]?e.touchStartX=t.clientX:e._pointerEvent||(e.touchStartX=t.touches[0].clientX)},n=function(t){e._pointerEvent&&PointerType[t.pointerType.toUpperCase()]&&(e.touchDeltaX=t.clientX-e.touchStartX),e._handleSwipe(),"hover"===e._config.pause&&(e.pause(),e.touchTimeout&&clearTimeout(e.touchTimeout),e.touchTimeout=setTimeout(function(t){return e.cycle(t)},TOUCHEVENT_COMPAT_WAIT+e._config.interval))};makeArray(SelectorEngine.find(Selector$2.ITEM_IMG,this._element)).forEach(function(e){EventHandler.on(e,Event$3.DRAG_START,function(e){return e.preventDefault()})}),this._pointerEvent?(EventHandler.on(this._element,Event$3.POINTERDOWN,function(e){return t(e)}),EventHandler.on(this._element,Event$3.POINTERUP,function(e){return n(e)}),this._element.classList.add(ClassName$2.POINTER_EVENT)):(EventHandler.on(this._element,Event$3.TOUCHSTART,function(e){return t(e)}),EventHandler.on(this._element,Event$3.TOUCHMOVE,function(t){return function(t){t.touches&&t.touches.length>1?e.touchDeltaX=0:e.touchDeltaX=t.touches[0].clientX-e.touchStartX}(t)}),EventHandler.on(this._element,Event$3.TOUCHEND,function(e){return n(e)}))},t._keydown=function(e){if(!/input|textarea/i.test(e.target.tagName))switch(e.which){case ARROW_LEFT_KEYCODE:e.preventDefault(),this.prev();break;case ARROW_RIGHT_KEYCODE:e.preventDefault(),this.next()}},t._getItemIndex=function(e){return this._items=e&&e.parentNode?makeArray(SelectorEngine.find(Selector$2.ITEM,e.parentNode)):[],this._items.indexOf(e)},t._getItemByDirection=function(e,t){var n=e===Direction.NEXT,i=e===Direction.PREV,r=this._getItemIndex(t),a=this._items.length-1;if((i&&0===r||n&&r===a)&&!this._config.wrap)return t;var o=(r+(e===Direction.PREV?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]},t._triggerSlideEvent=function(e,t){var n=this._getItemIndex(e),i=this._getItemIndex(SelectorEngine.findOne(Selector$2.ACTIVE_ITEM,this._element));return EventHandler.trigger(this._element,Event$3.SLIDE,{relatedTarget:e,direction:t,from:i,to:n})},t._setActiveIndicatorElement=function(e){if(this._indicatorsElement){for(var t=SelectorEngine.find(Selector$2.ACTIVE,this._indicatorsElement),n=0;n<t.length;n++)t[n].classList.remove(ClassName$2.ACTIVE);var i=this._indicatorsElement.children[this._getItemIndex(e)];i&&i.classList.add(ClassName$2.ACTIVE)}},t._slide=function(e,t){var n,i,r,a=this,o=SelectorEngine.findOne(Selector$2.ACTIVE_ITEM,this._element),s=this._getItemIndex(o),l=t||o&&this._getItemByDirection(e,o),c=this._getItemIndex(l),u=Boolean(this._interval);if(e===Direction.NEXT?(n=ClassName$2.LEFT,i=ClassName$2.NEXT,r=Direction.LEFT):(n=ClassName$2.RIGHT,i=ClassName$2.PREV,r=Direction.RIGHT),l&&l.classList.contains(ClassName$2.ACTIVE))this._isSliding=!1;else if(!this._triggerSlideEvent(l,r).defaultPrevented&&o&&l){if(this._isSliding=!0,u&&this.pause(),this._setActiveIndicatorElement(l),this._element.classList.contains(ClassName$2.SLIDE)){l.classList.add(i),reflow(l),o.classList.add(n),l.classList.add(n);var E=parseInt(l.getAttribute("data-interval"),10);E?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=E):this._config.interval=this._config.defaultInterval||this._config.interval;var d=getTransitionDurationFromElement(o);EventHandler.one(o,TRANSITION_END,function(){l.classList.remove(n),l.classList.remove(i),l.classList.add(ClassName$2.ACTIVE),o.classList.remove(ClassName$2.ACTIVE),o.classList.remove(i),o.classList.remove(n),a._isSliding=!1,setTimeout(function(){EventHandler.trigger(a._element,Event$3.SLID,{relatedTarget:l,direction:r,from:s,to:c})},0)}),emulateTransitionEnd(o,d)}else o.classList.remove(ClassName$2.ACTIVE),l.classList.add(ClassName$2.ACTIVE),this._isSliding=!1,EventHandler.trigger(this._element,Event$3.SLID,{relatedTarget:l,direction:r,from:s,to:c});u&&this.cycle()}},e._carouselInterface=function(t,n){var i=Data.getData(t,DATA_KEY$2),r=_objectSpread2({},Default,{},Manipulator.getDataAttributes(t));"object"==typeof n&&(r=_objectSpread2({},r,{},n));var a="string"==typeof n?n:r.slide;if(i||(i=new e(t,r)),"number"==typeof n)i.to(n);else if("string"==typeof a){if(void 0===i[a])throw new TypeError('No method named "'+a+'"');i[a]()}else r.interval&&r.ride&&(i.pause(),i.cycle())},e._jQueryInterface=function(t){return this.each(function(){e._carouselInterface(this,t)})},e._dataApiClickHandler=function(t){var n=getSelectorFromElement(this);if(n){var i=SelectorEngine.findOne(n);if(i&&i.classList.contains(ClassName$2.CAROUSEL)){var r=_objectSpread2({},Manipulator.getDataAttributes(i),{},Manipulator.getDataAttributes(this)),a=this.getAttribute("data-slide-to");a&&(r.interval=!1),e._carouselInterface(i,r),a&&Data.getData(i,DATA_KEY$2).to(a),t.preventDefault()}}},e._getInstance=function(e){return Data.getData(e,DATA_KEY$2)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$2}},{key:"Default",get:function(){return Default}}]),e}();if(EventHandler.on(document,Event$3.CLICK_DATA_API,Selector$2.DATA_SLIDE,Carousel._dataApiClickHandler),EventHandler.on(window,Event$3.LOAD_DATA_API,function(){for(var e=makeArray(SelectorEngine.find(Selector$2.DATA_RIDE)),t=0,n=e.length;t<n;t++)Carousel._carouselInterface(e[t],Data.getData(e[t],DATA_KEY$2))}),void 0!==jQuery){var JQUERY_NO_CONFLICT$2=jQuery.fn[NAME$2];jQuery.fn[NAME$2]=Carousel._jQueryInterface,jQuery.fn[NAME$2].Constructor=Carousel,jQuery.fn[NAME$2].noConflict=function(){return jQuery.fn[NAME$2]=JQUERY_NO_CONFLICT$2,Carousel._jQueryInterface}}var NAME$3="collapse",VERSION$3="4.3.1",DATA_KEY$3="bs.collapse",EVENT_KEY$3="."+DATA_KEY$3,DATA_API_KEY$3=".data-api",Default$1={toggle:!0,parent:""},DefaultType$1={toggle:"boolean",parent:"(string|element)"},Event$4={SHOW:"show"+EVENT_KEY$3,SHOWN:"shown"+EVENT_KEY$3,HIDE:"hide"+EVENT_KEY$3,HIDDEN:"hidden"+EVENT_KEY$3,CLICK_DATA_API:"click"+EVENT_KEY$3+DATA_API_KEY$3},ClassName$3={SHOW:"show",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},Dimension={WIDTH:"width",HEIGHT:"height"},Selector$3={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},Collapse=function(){function e(e,t){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(t),this._triggerArray=makeArray(SelectorEngine.find('[data-toggle="collapse"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'));for(var n=makeArray(SelectorEngine.find(Selector$3.DATA_TOGGLE)),i=0,r=n.length;i<r;i++){var a=n[i],o=getSelectorFromElement(a),s=makeArray(SelectorEngine.find(o)).filter(function(t){return t===e});null!==o&&s.length&&(this._selector=o,this._triggerArray.push(a))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle(),Data.setData(e,DATA_KEY$3,this)}var t=e.prototype;return t.toggle=function(){this._element.classList.contains(ClassName$3.SHOW)?this.hide():this.show()},t.show=function(){var t=this;if(!this._isTransitioning&&!this._element.classList.contains(ClassName$3.SHOW)){var n,i;this._parent&&0===(n=makeArray(SelectorEngine.find(Selector$3.ACTIVES,this._parent)).filter(function(e){return"string"==typeof t._config.parent?e.getAttribute("data-parent")===t._config.parent:e.classList.contains(ClassName$3.COLLAPSE)})).length&&(n=null);var r=SelectorEngine.findOne(this._selector);if(n){var a=n.filter(function(e){return r!==e});if((i=a[0]?Data.getData(a[0],DATA_KEY$3):null)&&i._isTransitioning)return}if(!EventHandler.trigger(this._element,Event$4.SHOW).defaultPrevented){n&&n.forEach(function(t){r!==t&&e._collapseInterface(t,"hide"),i||Data.setData(t,DATA_KEY$3,null)});var o=this._getDimension();this._element.classList.remove(ClassName$3.COLLAPSE),this._element.classList.add(ClassName$3.COLLAPSING),this._element.style[o]=0,this._triggerArray.length&&this._triggerArray.forEach(function(e){e.classList.remove(ClassName$3.COLLAPSED),e.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);var s="scroll"+(o[0].toUpperCase()+o.slice(1)),l=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,function(){t._element.classList.remove(ClassName$3.COLLAPSING),t._element.classList.add(ClassName$3.COLLAPSE),t._element.classList.add(ClassName$3.SHOW),t._element.style[o]="",t.setTransitioning(!1),EventHandler.trigger(t._element,Event$4.SHOWN)}),emulateTransitionEnd(this._element,l),this._element.style[o]=this._element[s]+"px"}}},t.hide=function(){var e=this;if(!this._isTransitioning&&this._element.classList.contains(ClassName$3.SHOW)&&!EventHandler.trigger(this._element,Event$4.HIDE).defaultPrevented){var t=this._getDimension();this._element.style[t]=this._element.getBoundingClientRect()[t]+"px",reflow(this._element),this._element.classList.add(ClassName$3.COLLAPSING),this._element.classList.remove(ClassName$3.COLLAPSE),this._element.classList.remove(ClassName$3.SHOW);var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var r=this._triggerArray[i],a=getSelectorFromElement(r);if(null!==a)SelectorEngine.findOne(a).classList.contains(ClassName$3.SHOW)||(r.classList.add(ClassName$3.COLLAPSED),r.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[t]="";var o=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,function(){e.setTransitioning(!1),e._element.classList.remove(ClassName$3.COLLAPSING),e._element.classList.add(ClassName$3.COLLAPSE),EventHandler.trigger(e._element,Event$4.HIDDEN)}),emulateTransitionEnd(this._element,o)}},t.setTransitioning=function(e){this._isTransitioning=e},t.dispose=function(){Data.removeData(this._element,DATA_KEY$3),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},t._getConfig=function(e){return(e=_objectSpread2({},Default$1,{},e)).toggle=Boolean(e.toggle),typeCheckConfig(NAME$3,e,DefaultType$1),e},t._getDimension=function(){return this._element.classList.contains(Dimension.WIDTH)?Dimension.WIDTH:Dimension.HEIGHT},t._getParent=function(){var e=this,t=this._config.parent;isElement(t)?void 0===t.jquery&&void 0===t[0]||(t=t[0]):t=SelectorEngine.findOne(t);var n='[data-toggle="collapse"][data-parent="'+t+'"]';return makeArray(SelectorEngine.find(n,t)).forEach(function(t){var n=getSelectorFromElement(t),i=n?SelectorEngine.findOne(n):null;e._addAriaAndCollapsedClass(i,[t])}),t},t._addAriaAndCollapsedClass=function(e,t){if(e){var n=e.classList.contains(ClassName$3.SHOW);t.length&&t.forEach(function(e){n?e.classList.remove(ClassName$3.COLLAPSED):e.classList.add(ClassName$3.COLLAPSED),e.setAttribute("aria-expanded",n)})}},e._collapseInterface=function(t,n){var i=Data.getData(t,DATA_KEY$3),r=_objectSpread2({},Default$1,{},Manipulator.getDataAttributes(t),{},"object"==typeof n&&n?n:{});if(!i&&r.toggle&&/show|hide/.test(n)&&(r.toggle=!1),i||(i=new e(t,r)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},e._jQueryInterface=function(t){return this.each(function(){e._collapseInterface(this,t)})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$3)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$3}},{key:"Default",get:function(){return Default$1}}]),e}();if(EventHandler.on(document,Event$4.CLICK_DATA_API,Selector$3.DATA_TOGGLE,function(e){"A"===e.target.tagName&&e.preventDefault();var t=Manipulator.getDataAttributes(this),n=getSelectorFromElement(this);makeArray(SelectorEngine.find(n)).forEach(function(e){var n,i=Data.getData(e,DATA_KEY$3);i?(null===i._parent&&"string"==typeof t.parent&&(i._config.parent=t.parent,i._parent=i._getParent()),n="toggle"):n=t,Collapse._collapseInterface(e,n)})}),void 0!==jQuery){var JQUERY_NO_CONFLICT$3=jQuery.fn[NAME$3];jQuery.fn[NAME$3]=Collapse._jQueryInterface,jQuery.fn[NAME$3].Constructor=Collapse,jQuery.fn[NAME$3].noConflict=function(){return jQuery.fn[NAME$3]=JQUERY_NO_CONFLICT$3,Collapse._jQueryInterface}}var NAME$4="dropdown",VERSION$4="4.3.1",DATA_KEY$4="bs.dropdown",EVENT_KEY$4="."+DATA_KEY$4,DATA_API_KEY$4=".data-api",ESCAPE_KEYCODE=27,SPACE_KEYCODE=32,TAB_KEYCODE=9,ARROW_UP_KEYCODE=38,ARROW_DOWN_KEYCODE=40,RIGHT_MOUSE_BUTTON_WHICH=3,REGEXP_KEYDOWN=new RegExp(ARROW_UP_KEYCODE+"|"+ARROW_DOWN_KEYCODE+"|"+ESCAPE_KEYCODE),Event$5={HIDE:"hide"+EVENT_KEY$4,HIDDEN:"hidden"+EVENT_KEY$4,SHOW:"show"+EVENT_KEY$4,SHOWN:"shown"+EVENT_KEY$4,CLICK:"click"+EVENT_KEY$4,CLICK_DATA_API:"click"+EVENT_KEY$4+DATA_API_KEY$4,KEYDOWN_DATA_API:"keydown"+EVENT_KEY$4+DATA_API_KEY$4,KEYUP_DATA_API:"keyup"+EVENT_KEY$4+DATA_API_KEY$4},ClassName$4={DISABLED:"disabled",SHOW:"show",DROPUP:"dropup",DROPRIGHT:"dropright",DROPLEFT:"dropleft",MENURIGHT:"dropdown-menu-right",POSITION_STATIC:"position-static"},Selector$4={DATA_TOGGLE:'[data-toggle="dropdown"]',FORM_CHILD:".dropdown form",MENU:".dropdown-menu",NAVBAR_NAV:".navbar-nav",VISIBLE_ITEMS:".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)"},AttachmentMap={TOP:"top-start",TOPEND:"top-end",BOTTOM:"bottom-start",BOTTOMEND:"bottom-end",RIGHT:"right-start",RIGHTEND:"right-end",LEFT:"left-start",LEFTEND:"left-end"},Default$2={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},DefaultType$2={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Dropdown=function(){function e(e,t){this._element=e,this._popper=null,this._config=this._getConfig(t),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners(),Data.setData(e,DATA_KEY$4,this)}var t=e.prototype;return t.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains(ClassName$4.DISABLED)){var t=e._getParentFromElement(this._element),n=this._menu.classList.contains(ClassName$4.SHOW);if(e._clearMenus(),!n){var i={relatedTarget:this._element};if(!EventHandler.trigger(t,Event$5.SHOW,i).defaultPrevented){if(!this._inNavbar){if(void 0===Popper)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var r=this._element;"parent"===this._config.reference?r=t:isElement(this._config.reference)&&(r=this._config.reference,void 0!==this._config.reference.jquery&&(r=this._config.reference[0])),"scrollParent"!==this._config.boundary&&t.classList.add(ClassName$4.POSITION_STATIC),this._popper=new Popper(r,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&!makeArray(SelectorEngine.closest(t,Selector$4.NAVBAR_NAV)).length&&makeArray(document.body.children).forEach(function(e){return EventHandler.on(e,"mouseover",null,noop())}),this._element.focus(),this._element.setAttribute("aria-expanded",!0),Manipulator.toggleClass(this._menu,ClassName$4.SHOW),Manipulator.toggleClass(t,ClassName$4.SHOW),EventHandler.trigger(t,Event$5.SHOWN,i)}}}},t.show=function(){if(!(this._element.disabled||this._element.classList.contains(ClassName$4.DISABLED)||this._menu.classList.contains(ClassName$4.SHOW))){var t=e._getParentFromElement(this._element),n={relatedTarget:this._element};EventHandler.trigger(t,Event$5.SHOW,n).defaultPrevented||(Manipulator.toggleClass(this._menu,ClassName$4.SHOW),Manipulator.toggleClass(t,ClassName$4.SHOW),EventHandler.trigger(t,Event$5.SHOWN,n))}},t.hide=function(){if(!this._element.disabled&&!this._element.classList.contains(ClassName$4.DISABLED)&&this._menu.classList.contains(ClassName$4.SHOW)){var t=e._getParentFromElement(this._element),n={relatedTarget:this._element};EventHandler.trigger(t,Event$5.HIDE,n).defaultPrevented||(Manipulator.toggleClass(this._menu,ClassName$4.SHOW),Manipulator.toggleClass(t,ClassName$4.SHOW),EventHandler.trigger(t,Event$5.HIDDEN,n))}},t.dispose=function(){Data.removeData(this._element,DATA_KEY$4),EventHandler.off(this._element,EVENT_KEY$4),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;EventHandler.on(this._element,Event$5.CLICK,function(t){t.preventDefault(),t.stopPropagation(),e.toggle()})},t._getConfig=function(e){return e=_objectSpread2({},this.constructor.Default,{},Manipulator.getDataAttributes(this._element),{},e),typeCheckConfig(NAME$4,e,this.constructor.DefaultType),e},t._getMenuElement=function(){var t=e._getParentFromElement(this._element);return SelectorEngine.findOne(Selector$4.MENU,t)},t._getPlacement=function(){var e=this._element.parentNode,t=AttachmentMap.BOTTOM;return e.classList.contains(ClassName$4.DROPUP)?(t=AttachmentMap.TOP,this._menu.classList.contains(ClassName$4.MENURIGHT)&&(t=AttachmentMap.TOPEND)):e.classList.contains(ClassName$4.DROPRIGHT)?t=AttachmentMap.RIGHT:e.classList.contains(ClassName$4.DROPLEFT)?t=AttachmentMap.LEFT:this._menu.classList.contains(ClassName$4.MENURIGHT)&&(t=AttachmentMap.BOTTOMEND),t},t._detectNavbar=function(){return Boolean(SelectorEngine.closest(this._element,".navbar"))},t._getOffset=function(){var e=this,t={};return"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=_objectSpread2({},t.offsets,{},e._config.offset(t.offsets,e._element)||{}),t}:t.offset=this._config.offset,t},t._getPopperConfig=function(){var e={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(e.modifiers.applyStyle={enabled:!1}),e},e._dropdownInterface=function(t,n){var i=Data.getData(t,DATA_KEY$4);if(i||(i=new e(t,"object"==typeof n?n:null)),"string"==typeof n){if(void 0===i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},e._jQueryInterface=function(t){return this.each(function(){e._dropdownInterface(this,t)})},e._clearMenus=function(t){if(!t||t.which!==RIGHT_MOUSE_BUTTON_WHICH&&("keyup"!==t.type||t.which===TAB_KEYCODE))for(var n=makeArray(SelectorEngine.find(Selector$4.DATA_TOGGLE)),i=0,r=n.length;i<r;i++){var a=e._getParentFromElement(n[i]),o=Data.getData(n[i],DATA_KEY$4),s={relatedTarget:n[i]};if(t&&"click"===t.type&&(s.clickEvent=t),o){var l=o._menu;if(a.classList.contains(ClassName$4.SHOW))if(!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&t.which===TAB_KEYCODE)&&a.contains(t.target)))EventHandler.trigger(a,Event$5.HIDE,s).defaultPrevented||("ontouchstart"in document.documentElement&&makeArray(document.body.children).forEach(function(e){return EventHandler.off(e,"mouseover",null,noop())}),n[i].setAttribute("aria-expanded","false"),l.classList.remove(ClassName$4.SHOW),a.classList.remove(ClassName$4.SHOW),EventHandler.trigger(a,Event$5.HIDDEN,s))}}},e._getParentFromElement=function(e){var t,n=getSelectorFromElement(e);return n&&(t=SelectorEngine.findOne(n)),t||e.parentNode},e._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(t.which===SPACE_KEYCODE||t.which!==ESCAPE_KEYCODE&&(t.which!==ARROW_DOWN_KEYCODE&&t.which!==ARROW_UP_KEYCODE||SelectorEngine.closest(t.target,Selector$4.MENU))):REGEXP_KEYDOWN.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!this.classList.contains(ClassName$4.DISABLED))){var n=e._getParentFromElement(this),i=n.classList.contains(ClassName$4.SHOW);if(!i||i&&(t.which===ESCAPE_KEYCODE||t.which===SPACE_KEYCODE))return t.which===ESCAPE_KEYCODE&&SelectorEngine.findOne(Selector$4.DATA_TOGGLE,n).focus(),void e._clearMenus();var r=makeArray(SelectorEngine.find(Selector$4.VISIBLE_ITEMS,n));if(r.length){var a=r.indexOf(t.target);t.which===ARROW_UP_KEYCODE&&a>0&&a--,t.which===ARROW_DOWN_KEYCODE&&a<r.length-1&&a++,a<0&&(a=0),r[a].focus()}}},e._getInstance=function(e){return Data.getData(e,DATA_KEY$4)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$4}},{key:"Default",get:function(){return Default$2}},{key:"DefaultType",get:function(){return DefaultType$2}}]),e}();if(EventHandler.on(document,Event$5.KEYDOWN_DATA_API,Selector$4.DATA_TOGGLE,Dropdown._dataApiKeydownHandler),EventHandler.on(document,Event$5.KEYDOWN_DATA_API,Selector$4.MENU,Dropdown._dataApiKeydownHandler),EventHandler.on(document,Event$5.CLICK_DATA_API,Dropdown._clearMenus),EventHandler.on(document,Event$5.KEYUP_DATA_API,Dropdown._clearMenus),EventHandler.on(document,Event$5.CLICK_DATA_API,Selector$4.DATA_TOGGLE,function(e){e.preventDefault(),e.stopPropagation(),Dropdown._dropdownInterface(this,"toggle")}),EventHandler.on(document,Event$5.CLICK_DATA_API,Selector$4.FORM_CHILD,function(e){return e.stopPropagation()}),void 0!==jQuery){var JQUERY_NO_CONFLICT$4=jQuery.fn[NAME$4];jQuery.fn[NAME$4]=Dropdown._jQueryInterface,jQuery.fn[NAME$4].Constructor=Dropdown,jQuery.fn[NAME$4].noConflict=function(){return jQuery.fn[NAME$4]=JQUERY_NO_CONFLICT$4,Dropdown._jQueryInterface}}var NAME$5="modal",VERSION$5="4.3.1",DATA_KEY$5="bs.modal",EVENT_KEY$5="."+DATA_KEY$5,DATA_API_KEY$5=".data-api",ESCAPE_KEYCODE$1=27,Default$3={backdrop:!0,keyboard:!0,focus:!0,show:!0},DefaultType$3={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Event$6={HIDE:"hide"+EVENT_KEY$5,HIDDEN:"hidden"+EVENT_KEY$5,SHOW:"show"+EVENT_KEY$5,SHOWN:"shown"+EVENT_KEY$5,FOCUSIN:"focusin"+EVENT_KEY$5,RESIZE:"resize"+EVENT_KEY$5,CLICK_DISMISS:"click.dismiss"+EVENT_KEY$5,KEYDOWN_DISMISS:"keydown.dismiss"+EVENT_KEY$5,MOUSEUP_DISMISS:"mouseup.dismiss"+EVENT_KEY$5,MOUSEDOWN_DISMISS:"mousedown.dismiss"+EVENT_KEY$5,CLICK_DATA_API:"click"+EVENT_KEY$5+DATA_API_KEY$5},ClassName$5={SCROLLABLE:"modal-dialog-scrollable",SCROLLBAR_MEASURER:"modal-scrollbar-measure",BACKDROP:"modal-backdrop",OPEN:"modal-open",FADE:"fade",SHOW:"show"},Selector$5={DIALOG:".modal-dialog",MODAL_BODY:".modal-body",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top"},Modal=function(){function e(e,t){this._config=this._getConfig(t),this._element=e,this._dialog=SelectorEngine.findOne(Selector$5.DIALOG,e),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,Data.setData(e,DATA_KEY$5,this)}var t=e.prototype;return t.toggle=function(e){return this._isShown?this.hide():this.show(e)},t.show=function(e){var t=this;if(!this._isShown&&!this._isTransitioning){this._element.classList.contains(ClassName$5.FADE)&&(this._isTransitioning=!0);var n=EventHandler.trigger(this._element,Event$6.SHOW,{relatedTarget:e});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.on(this._element,Event$6.CLICK_DISMISS,Selector$5.DATA_DISMISS,function(e){return t.hide(e)}),EventHandler.on(this._dialog,Event$6.MOUSEDOWN_DISMISS,function(){EventHandler.one(t._element,Event$6.MOUSEUP_DISMISS,function(e){e.target===t._element&&(t._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return t._showElement(e)}))}},t.hide=function(e){var t=this;if((e&&e.preventDefault(),this._isShown&&!this._isTransitioning)&&!EventHandler.trigger(this._element,Event$6.HIDE).defaultPrevented){this._isShown=!1;var n=this._element.classList.contains(ClassName$5.FADE);if(n&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.off(document,Event$6.FOCUSIN),this._element.classList.remove(ClassName$5.SHOW),EventHandler.off(this._element,Event$6.CLICK_DISMISS),EventHandler.off(this._dialog,Event$6.MOUSEDOWN_DISMISS),n){var i=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,function(e){return t._hideModal(e)}),emulateTransitionEnd(this._element,i)}else this._hideModal()}},t.dispose=function(){[window,this._element,this._dialog].forEach(function(e){return EventHandler.off(e,EVENT_KEY$5)}),EventHandler.off(document,Event$6.FOCUSIN),Data.removeData(this._element,DATA_KEY$5),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},t.handleUpdate=function(){this._adjustDialog()},t._getConfig=function(e){return e=_objectSpread2({},Default$3,{},e),typeCheckConfig(NAME$5,e,DefaultType$3),e},t._showElement=function(e){var t=this,n=this._element.classList.contains(ClassName$5.FADE);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._dialog.classList.contains(ClassName$5.SCROLLABLE)?SelectorEngine.findOne(Selector$5.MODAL_BODY,this._dialog).scrollTop=0:this._element.scrollTop=0,n&&reflow(this._element),this._element.classList.add(ClassName$5.SHOW),this._config.focus&&this._enforceFocus();var i=function(){t._config.focus&&t._element.focus(),t._isTransitioning=!1,EventHandler.trigger(t._element,Event$6.SHOWN,{relatedTarget:e})};if(n){var r=getTransitionDurationFromElement(this._dialog);EventHandler.one(this._dialog,TRANSITION_END,i),emulateTransitionEnd(this._dialog,r)}else i()},t._enforceFocus=function(){var e=this;EventHandler.off(document,Event$6.FOCUSIN),EventHandler.on(document,Event$6.FOCUSIN,function(t){document===t.target||e._element===t.target||e._element.contains(t.target)||e._element.focus()})},t._setEscapeEvent=function(){var e=this;this._isShown&&this._config.keyboard?EventHandler.on(this._element,Event$6.KEYDOWN_DISMISS,function(t){t.which===ESCAPE_KEYCODE$1&&(t.preventDefault(),e.hide())}):EventHandler.off(this._element,Event$6.KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?EventHandler.on(window,Event$6.RESIZE,function(){return e._adjustDialog()}):EventHandler.off(window,Event$6.RESIZE)},t._hideModal=function(){var e=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){document.body.classList.remove(ClassName$5.OPEN),e._resetAdjustments(),e._resetScrollbar(),EventHandler.trigger(e._element,Event$6.HIDDEN)})},t._removeBackdrop=function(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null},t._showBackdrop=function(e){var t=this,n=this._element.classList.contains(ClassName$5.FADE)?ClassName$5.FADE:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=ClassName$5.BACKDROP,n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),EventHandler.on(this._element,Event$6.CLICK_DISMISS,function(e){t._ignoreBackdropClick?t._ignoreBackdropClick=!1:e.target===e.currentTarget&&("static"===t._config.backdrop?t._element.focus():t.hide())}),n&&reflow(this._backdrop),this._backdrop.classList.add(ClassName$5.SHOW),!n)return void e();var i=getTransitionDurationFromElement(this._backdrop);EventHandler.one(this._backdrop,TRANSITION_END,e),emulateTransitionEnd(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove(ClassName$5.SHOW);var r=function(){t._removeBackdrop(),e()};if(this._element.classList.contains(ClassName$5.FADE)){var a=getTransitionDurationFromElement(this._backdrop);EventHandler.one(this._backdrop,TRANSITION_END,r),emulateTransitionEnd(this._backdrop,a)}else r()}else e()},t._adjustDialog=function(){var e=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&e&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!e&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var e=document.body.getBoundingClientRect();this._isBodyOverflowing=e.left+e.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},t._setScrollbar=function(){var e=this;if(this._isBodyOverflowing){makeArray(SelectorEngine.find(Selector$5.FIXED_CONTENT)).forEach(function(t){var n=t.style.paddingRight,i=window.getComputedStyle(t)["padding-right"];Manipulator.setDataAttribute(t,"padding-right",n),t.style.paddingRight=parseFloat(i)+e._scrollbarWidth+"px"}),makeArray(SelectorEngine.find(Selector$5.STICKY_CONTENT)).forEach(function(t){var n=t.style.marginRight,i=window.getComputedStyle(t)["margin-right"];Manipulator.setDataAttribute(t,"margin-right",n),t.style.marginRight=parseFloat(i)-e._scrollbarWidth+"px"});var t=document.body.style.paddingRight,n=window.getComputedStyle(document.body)["padding-right"];Manipulator.setDataAttribute(document.body,"padding-right",t),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add(ClassName$5.OPEN)},t._resetScrollbar=function(){makeArray(SelectorEngine.find(Selector$5.FIXED_CONTENT)).forEach(function(e){var t=Manipulator.getDataAttribute(e,"padding-right");void 0!==t&&(Manipulator.removeDataAttribute(e,"padding-right"),e.style.paddingRight=t)}),makeArray(SelectorEngine.find(""+Selector$5.STICKY_CONTENT)).forEach(function(e){var t=Manipulator.getDataAttribute(e,"margin-right");void 0!==t&&(Manipulator.removeDataAttribute(e,"margin-right"),e.style.marginRight=t)});var e=Manipulator.getDataAttribute(document.body,"padding-right");void 0===e?document.body.style.paddingRight="":(Manipulator.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=e)},t._getScrollbarWidth=function(){var e=document.createElement("div");e.className=ClassName$5.SCROLLBAR_MEASURER,document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t},e._jQueryInterface=function(t,n){return this.each(function(){var i=Data.getData(this,DATA_KEY$5),r=_objectSpread2({},Default$3,{},Manipulator.getDataAttributes(this),{},"object"==typeof t&&t?t:{});if(i||(i=new e(this,r)),"string"==typeof t){if(void 0===i[t])throw new TypeError('No method named "'+t+'"');i[t](n)}else r.show&&i.show(n)})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$5)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$5}},{key:"Default",get:function(){return Default$3}}]),e}();if(EventHandler.on(document,Event$6.CLICK_DATA_API,Selector$5.DATA_TOGGLE,function(e){var t=this,n=getSelectorFromElement(this),i=SelectorEngine.findOne(n);"A"!==this.tagName&&"AREA"!==this.tagName||e.preventDefault(),EventHandler.one(i,Event$6.SHOW,function(e){e.defaultPrevented||EventHandler.one(i,Event$6.HIDDEN,function(){isVisible(t)&&t.focus()})});var r=Data.getData(i,DATA_KEY$5);if(!r){var a=_objectSpread2({},Manipulator.getDataAttributes(i),{},Manipulator.getDataAttributes(this));r=new Modal(i,a)}r.show(this)}),void 0!==jQuery){var JQUERY_NO_CONFLICT$5=jQuery.fn[NAME$5];jQuery.fn[NAME$5]=Modal._jQueryInterface,jQuery.fn[NAME$5].Constructor=Modal,jQuery.fn[NAME$5].noConflict=function(){return jQuery.fn[NAME$5]=JQUERY_NO_CONFLICT$5,Modal._jQueryInterface}}var uriAttrs=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],ARIA_ATTRIBUTE_PATTERN=/^aria-[\w-]*$/i,SAFE_URL_PATTERN=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,DATA_URL_PATTERN=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,allowedAttribute=function(e,t){var n=e.nodeName.toLowerCase();if(-1!==t.indexOf(n))return-1===uriAttrs.indexOf(n)||Boolean(e.nodeValue.match(SAFE_URL_PATTERN)||e.nodeValue.match(DATA_URL_PATTERN));for(var i=t.filter(function(e){return e instanceof RegExp}),r=0,a=i.length;r<a;r++)if(n.match(i[r]))return!0;return!1},DefaultWhitelist={"*":["class","dir","id","lang","role",ARIA_ATTRIBUTE_PATTERN],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function sanitizeHtml(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);for(var i=(new window.DOMParser).parseFromString(e,"text/html"),r=Object.keys(t),a=makeArray(i.body.querySelectorAll("*")),o=function(e,n){var i=a[e],o=i.nodeName.toLowerCase();if(-1===r.indexOf(o))return i.parentNode.removeChild(i),"continue";var s=makeArray(i.attributes),l=[].concat(t["*"]||[],t[o]||[]);s.forEach(function(e){allowedAttribute(e,l)||i.removeAttribute(e.nodeName)})},s=0,l=a.length;s<l;s++)o(s);return i.body.innerHTML}var NAME$6="tooltip",VERSION$6="4.3.1",DATA_KEY$6="bs.tooltip",EVENT_KEY$6="."+DATA_KEY$6,CLASS_PREFIX="bs-tooltip",BSCLS_PREFIX_REGEX=new RegExp("(^|\\s)"+CLASS_PREFIX+"\\S+","g"),DISALLOWED_ATTRIBUTES=["sanitize","whiteList","sanitizeFn"],DefaultType$4={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},AttachmentMap$1={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Default$4={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:DefaultWhitelist},HoverState={SHOW:"show",OUT:"out"},Event$7={HIDE:"hide"+EVENT_KEY$6,HIDDEN:"hidden"+EVENT_KEY$6,SHOW:"show"+EVENT_KEY$6,SHOWN:"shown"+EVENT_KEY$6,INSERTED:"inserted"+EVENT_KEY$6,CLICK:"click"+EVENT_KEY$6,FOCUSIN:"focusin"+EVENT_KEY$6,FOCUSOUT:"focusout"+EVENT_KEY$6,MOUSEENTER:"mouseenter"+EVENT_KEY$6,MOUSELEAVE:"mouseleave"+EVENT_KEY$6},ClassName$6={FADE:"fade",SHOW:"show"},Selector$6={TOOLTIP_INNER:".tooltip-inner"},Trigger={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"},Tooltip=function(){function e(e,t){if(void 0===Popper)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=e,this.config=this._getConfig(t),this.tip=null,this._setListeners(),Data.setData(e,this.constructor.DATA_KEY,this)}var t=e.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(e){if(this._isEnabled)if(e){var t=this.constructor.DATA_KEY,n=Data.getData(e.delegateTarget,t);n||(n=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.setData(e.delegateTarget,t,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(ClassName$6.SHOW))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),Data.removeData(this.element,this.constructor.DATA_KEY),EventHandler.off(this.element,this.constructor.EVENT_KEY),EventHandler.off(SelectorEngine.closest(this.element,".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var t=EventHandler.trigger(this.element,this.constructor.Event.SHOW),n=findShadowRoot(this.element),i=null===n?this.element.ownerDocument.documentElement.contains(this.element):n.contains(this.element);if(t.defaultPrevented||!i)return;var r=this.getTipElement(),a=getUID(this.constructor.NAME);r.setAttribute("id",a),this.element.setAttribute("aria-describedby",a),this.setContent(),this.config.animation&&r.classList.add(ClassName$6.FADE);var o="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,s=this._getAttachment(o);this._addAttachmentClass(s);var l=this._getContainer();Data.setData(r,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||l.appendChild(r),EventHandler.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new Popper(this.element,r,{placement:s,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:"."+this.constructor.NAME+"-arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),r.classList.add(ClassName$6.SHOW),"ontouchstart"in document.documentElement&&makeArray(document.body.children).forEach(function(e){EventHandler.on(e,"mouseover",noop())});var c=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,EventHandler.trigger(e.element,e.constructor.Event.SHOWN),t===HoverState.OUT&&e._leave(null,e)};if(this.tip.classList.contains(ClassName$6.FADE)){var u=getTransitionDurationFromElement(this.tip);EventHandler.one(this.tip,TRANSITION_END,c),emulateTransitionEnd(this.tip,u)}else c()}},t.hide=function(){var e=this,t=this.getTipElement(),n=function(){e._hoverState!==HoverState.SHOW&&t.parentNode&&t.parentNode.removeChild(t),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),EventHandler.trigger(e.element,e.constructor.Event.HIDDEN),e._popper.destroy()};if(!EventHandler.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){if(t.classList.remove(ClassName$6.SHOW),"ontouchstart"in document.documentElement&&makeArray(document.body.children).forEach(function(e){return EventHandler.off(e,"mouseover",noop)}),this._activeTrigger[Trigger.CLICK]=!1,this._activeTrigger[Trigger.FOCUS]=!1,this._activeTrigger[Trigger.HOVER]=!1,this.tip.classList.contains(ClassName$6.FADE)){var i=getTransitionDurationFromElement(t);EventHandler.one(t,TRANSITION_END,n),emulateTransitionEnd(t,i)}else n();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.getTipElement=function(){if(this.tip)return this.tip;var e=document.createElement("div");return e.innerHTML=this.config.template,this.tip=e.children[0],this.tip},t.setContent=function(){var e=this.getTipElement();this.setElementContent(SelectorEngine.findOne(Selector$6.TOOLTIP_INNER,e),this.getTitle()),e.classList.remove(ClassName$6.FADE),e.classList.remove(ClassName$6.SHOW)},t.setElementContent=function(e,t){if(null!==e)return"object"==typeof t&&isElement(t)?(t.jquery&&(t=t[0]),void(this.config.html?t.parentNode!==e&&(e.innerHTML="",e.appendChild(t)):e.innerText=t.textContent)):void(this.config.html?(this.config.sanitize&&(t=sanitizeHtml(t,this.config.whiteList,this.config.sanitizeFn)),e.innerHTML=t):e.innerText=t)},t.getTitle=function(){var e=this.element.getAttribute("data-original-title");return e||(e="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),e},t._addAttachmentClass=function(e){this.getTipElement().classList.add(CLASS_PREFIX+"-"+e)},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=_objectSpread2({},t.offsets,{},e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:isElement(this.config.container)?this.config.container:SelectorEngine.findOne(this.config.container)},t._getAttachment=function(e){return AttachmentMap$1[e.toUpperCase()]},t._setListeners=function(){var e=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)EventHandler.on(e.element,e.constructor.Event.CLICK,e.config.selector,function(t){return e.toggle(t)});else if(t!==Trigger.MANUAL){var n=t===Trigger.HOVER?e.constructor.Event.MOUSEENTER:e.constructor.Event.FOCUSIN,i=t===Trigger.HOVER?e.constructor.Event.MOUSELEAVE:e.constructor.Event.FOCUSOUT;EventHandler.on(e.element,n,e.config.selector,function(t){return e._enter(t)}),EventHandler.on(e.element,i,e.config.selector,function(t){return e._leave(t)})}}),this._hideModalHandler=function(){e.element&&e.hide()},EventHandler.on(SelectorEngine.closest(this.element,".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=_objectSpread2({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var e=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==e)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(e,t){var n=this.constructor.DATA_KEY;(t=t||Data.getData(e.delegateTarget,n))||(t=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.setData(e.delegateTarget,n,t)),e&&(t._activeTrigger["focusin"===e.type?Trigger.FOCUS:Trigger.HOVER]=!0),t.getTipElement().classList.contains(ClassName$6.SHOW)||t._hoverState===HoverState.SHOW?t._hoverState=HoverState.SHOW:(clearTimeout(t._timeout),t._hoverState=HoverState.SHOW,t.config.delay&&t.config.delay.show?t._timeout=setTimeout(function(){t._hoverState===HoverState.SHOW&&t.show()},t.config.delay.show):t.show())},t._leave=function(e,t){var n=this.constructor.DATA_KEY;(t=t||Data.getData(e.delegateTarget,n))||(t=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.setData(e.delegateTarget,n,t)),e&&(t._activeTrigger["focusout"===e.type?Trigger.FOCUS:Trigger.HOVER]=!1),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=HoverState.OUT,t.config.delay&&t.config.delay.hide?t._timeout=setTimeout(function(){t._hoverState===HoverState.OUT&&t.hide()},t.config.delay.hide):t.hide())},t._isWithActiveTrigger=function(){for(var e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1},t._getConfig=function(e){var t=Manipulator.getDataAttributes(this.element);return Object.keys(t).forEach(function(e){-1!==DISALLOWED_ATTRIBUTES.indexOf(e)&&delete t[e]}),e&&"object"==typeof e.container&&e.container.jquery&&(e.container=e.container[0]),"number"==typeof(e=_objectSpread2({},this.constructor.Default,{},t,{},"object"==typeof e&&e?e:{})).delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),typeCheckConfig(NAME$6,e,this.constructor.DefaultType),e.sanitize&&(e.template=sanitizeHtml(e.template,e.whiteList,e.sanitizeFn)),e},t._getDelegateConfig=function(){var e={};if(this.config)for(var t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e},t._cleanTipClass=function(){var e=this.getTipElement(),t=e.getAttribute("class").match(BSCLS_PREFIX_REGEX);null!==t&&t.length&&t.map(function(e){return e.trim()}).forEach(function(t){return e.classList.remove(t)})},t._handlePopperPlacementChange=function(e){var t=e.instance;this.tip=t.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(e.placement))},t._fixTransition=function(){var e=this.getTipElement(),t=this.config.animation;null===e.getAttribute("x-placement")&&(e.classList.remove(ClassName$6.FADE),this.config.animation=!1,this.hide(),this.show(),this.config.animation=t)},e._jQueryInterface=function(t){return this.each(function(){var n=Data.getData(this,DATA_KEY$6),i="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new e(this,i)),"string"==typeof t)){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$6)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$6}},{key:"Default",get:function(){return Default$4}},{key:"NAME",get:function(){return NAME$6}},{key:"DATA_KEY",get:function(){return DATA_KEY$6}},{key:"Event",get:function(){return Event$7}},{key:"EVENT_KEY",get:function(){return EVENT_KEY$6}},{key:"DefaultType",get:function(){return DefaultType$4}}]),e}();if(void 0!==jQuery){var JQUERY_NO_CONFLICT$6=jQuery.fn[NAME$6];jQuery.fn[NAME$6]=Tooltip._jQueryInterface,jQuery.fn[NAME$6].Constructor=Tooltip,jQuery.fn[NAME$6].noConflict=function(){return jQuery.fn[NAME$6]=JQUERY_NO_CONFLICT$6,Tooltip._jQueryInterface}}var NAME$7="popover",VERSION$7="4.3.1",DATA_KEY$7="bs.popover",EVENT_KEY$7="."+DATA_KEY$7,CLASS_PREFIX$1="bs-popover",BSCLS_PREFIX_REGEX$1=new RegExp("(^|\\s)"+CLASS_PREFIX$1+"\\S+","g"),Default$5=_objectSpread2({},Tooltip.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),DefaultType$5=_objectSpread2({},Tooltip.DefaultType,{content:"(string|element|function)"}),ClassName$7={FADE:"fade",SHOW:"show"},Selector$7={TITLE:".popover-header",CONTENT:".popover-body"},Event$8={HIDE:"hide"+EVENT_KEY$7,HIDDEN:"hidden"+EVENT_KEY$7,SHOW:"show"+EVENT_KEY$7,SHOWN:"shown"+EVENT_KEY$7,INSERTED:"inserted"+EVENT_KEY$7,CLICK:"click"+EVENT_KEY$7,FOCUSIN:"focusin"+EVENT_KEY$7,FOCUSOUT:"focusout"+EVENT_KEY$7,MOUSEENTER:"mouseenter"+EVENT_KEY$7,MOUSELEAVE:"mouseleave"+EVENT_KEY$7},Popover=function(e){function t(){return e.apply(this,arguments)||this}_inheritsLoose(t,e);var n=t.prototype;return n.isWithContent=function(){return this.getTitle()||this._getContent()},n.addAttachmentClass=function(e){this.getTipElement().classList.add(CLASS_PREFIX$1+"-"+e)},n.setContent=function(){var e=this.getTipElement();this.setElementContent(SelectorEngine.findOne(Selector$7.TITLE,e),this.getTitle());var t=this._getContent();"function"==typeof t&&(t=t.call(this.element)),this.setElementContent(SelectorEngine.findOne(Selector$7.CONTENT,e),t),e.classList.remove(ClassName$7.FADE),e.classList.remove(ClassName$7.SHOW)},n._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},n._cleanTipClass=function(){var e=this.getTipElement(),t=e.getAttribute("class").match(BSCLS_PREFIX_REGEX$1);null!==t&&t.length>0&&t.map(function(e){return e.trim()}).forEach(function(t){return e.classList.remove(t)})},t._jQueryInterface=function(e){return this.each(function(){var n=Data.getData(this,DATA_KEY$7),i="object"==typeof e?e:null;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,i),Data.setData(this,DATA_KEY$7,n)),"string"==typeof e)){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(e){return Data.getData(e,DATA_KEY$7)},_createClass(t,null,[{key:"VERSION",get:function(){return VERSION$7}},{key:"Default",get:function(){return Default$5}},{key:"NAME",get:function(){return NAME$7}},{key:"DATA_KEY",get:function(){return DATA_KEY$7}},{key:"Event",get:function(){return Event$8}},{key:"EVENT_KEY",get:function(){return EVENT_KEY$7}},{key:"DefaultType",get:function(){return DefaultType$5}}]),t}(Tooltip);if(void 0!==jQuery){var JQUERY_NO_CONFLICT$7=jQuery.fn[NAME$7];jQuery.fn[NAME$7]=Popover._jQueryInterface,jQuery.fn[NAME$7].Constructor=Popover,jQuery.fn[NAME$7].noConflict=function(){return jQuery.fn[NAME$7]=JQUERY_NO_CONFLICT$7,Popover._jQueryInterface}}var NAME$8="scrollspy",VERSION$8="4.3.1",DATA_KEY$8="bs.scrollspy",EVENT_KEY$8="."+DATA_KEY$8,DATA_API_KEY$6=".data-api",Default$6={offset:10,method:"auto",target:""},DefaultType$6={offset:"number",method:"string",target:"(string|element)"},Event$9={ACTIVATE:"activate"+EVENT_KEY$8,SCROLL:"scroll"+EVENT_KEY$8,LOAD_DATA_API:"load"+EVENT_KEY$8+DATA_API_KEY$6},ClassName$8={DROPDOWN_ITEM:"dropdown-item",ACTIVE:"active"},Selector$8={DATA_SPY:'[data-spy="scroll"]',NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_TOGGLE:".dropdown-toggle"},OffsetMethod={OFFSET:"offset",POSITION:"position"},ScrollSpy=function(){function e(e,t){var n=this;this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(t),this._selector=this._config.target+" "+Selector$8.NAV_LINKS+","+this._config.target+" "+Selector$8.LIST_ITEMS+","+this._config.target+" ."+ClassName$8.DROPDOWN_ITEM,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,EventHandler.on(this._scrollElement,Event$9.SCROLL,function(e){return n._process(e)}),this.refresh(),this._process(),Data.setData(e,DATA_KEY$8,this)}var t=e.prototype;return t.refresh=function(){var e=this,t=this._scrollElement===this._scrollElement.window?OffsetMethod.OFFSET:OffsetMethod.POSITION,n="auto"===this._config.method?t:this._config.method,i=n===OffsetMethod.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),makeArray(SelectorEngine.find(this._selector)).map(function(e){var t,r=getSelectorFromElement(e);if(r&&(t=SelectorEngine.findOne(r)),t){var a=t.getBoundingClientRect();if(a.width||a.height)return[Manipulator[n](t).top+i,r]}return null}).filter(function(e){return e}).sort(function(e,t){return e[0]-t[0]}).forEach(function(t){e._offsets.push(t[0]),e._targets.push(t[1])})},t.dispose=function(){Data.removeData(this._element,DATA_KEY$8),EventHandler.off(this._scrollElement,EVENT_KEY$8),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},t._getConfig=function(e){if("string"!=typeof(e=_objectSpread2({},Default$6,{},"object"==typeof e&&e?e:{})).target){var t=e.target.id;t||(t=getUID(NAME$8),e.target.id=t),e.target="#"+t}return typeCheckConfig(NAME$8,e,DefaultType$6),e},t._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},t._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},t._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},t._process=function(){var e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),e>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&e<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var r=this._offsets.length;r--;){this._activeTarget!==this._targets[r]&&e>=this._offsets[r]&&(void 0===this._offsets[r+1]||e<this._offsets[r+1])&&this._activate(this._targets[r])}}},t._activate=function(e){this._activeTarget=e,this._clear();var t=this._selector.split(",").map(function(t){return t+'[data-target="'+e+'"],'+t+'[href="'+e+'"]'}),n=SelectorEngine.findOne(t.join(","));n.classList.contains(ClassName$8.DROPDOWN_ITEM)?(SelectorEngine.findOne(Selector$8.DROPDOWN_TOGGLE,SelectorEngine.closest(n,Selector$8.DROPDOWN)).classList.add(ClassName$8.ACTIVE),n.classList.add(ClassName$8.ACTIVE)):(n.classList.add(ClassName$8.ACTIVE),SelectorEngine.parents(n,Selector$8.NAV_LIST_GROUP).forEach(function(e){SelectorEngine.prev(e,Selector$8.NAV_LINKS+", "+Selector$8.LIST_ITEMS).forEach(function(e){return e.classList.add(ClassName$8.ACTIVE)}),SelectorEngine.prev(e,Selector$8.NAV_ITEMS).forEach(function(e){SelectorEngine.children(e,Selector$8.NAV_LINKS).forEach(function(e){return e.classList.add(ClassName$8.ACTIVE)})})})),EventHandler.trigger(this._scrollElement,Event$9.ACTIVATE,{relatedTarget:e})},t._clear=function(){makeArray(SelectorEngine.find(this._selector)).filter(function(e){return e.classList.contains(ClassName$8.ACTIVE)}).forEach(function(e){return e.classList.remove(ClassName$8.ACTIVE)})},e._jQueryInterface=function(t){return this.each(function(){var n=Data.getData(this,DATA_KEY$8);if(n||(n=new e(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$8)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$8}},{key:"Default",get:function(){return Default$6}}]),e}();if(EventHandler.on(window,Event$9.LOAD_DATA_API,function(){makeArray(SelectorEngine.find(Selector$8.DATA_SPY)).forEach(function(e){return new ScrollSpy(e,Manipulator.getDataAttributes(e))})}),void 0!==jQuery){var JQUERY_NO_CONFLICT$8=jQuery.fn[NAME$8];jQuery.fn[NAME$8]=ScrollSpy._jQueryInterface,jQuery.fn[NAME$8].Constructor=ScrollSpy,jQuery.fn[NAME$8].noConflict=function(){return jQuery.fn[NAME$8]=JQUERY_NO_CONFLICT$8,ScrollSpy._jQueryInterface}}var NAME$9="tab",VERSION$9="4.3.1",DATA_KEY$9="bs.tab",EVENT_KEY$9="."+DATA_KEY$9,DATA_API_KEY$7=".data-api",Event$a={HIDE:"hide"+EVENT_KEY$9,HIDDEN:"hidden"+EVENT_KEY$9,SHOW:"show"+EVENT_KEY$9,SHOWN:"shown"+EVENT_KEY$9,CLICK_DATA_API:"click"+EVENT_KEY$9+DATA_API_KEY$7},ClassName$9={DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active",DISABLED:"disabled",FADE:"fade",SHOW:"show"},Selector$9={DROPDOWN:".dropdown",NAV_LIST_GROUP:".nav, .list-group",ACTIVE:".active",ACTIVE_UL:":scope > li > .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',DROPDOWN_TOGGLE:".dropdown-toggle",DROPDOWN_ACTIVE_CHILD:":scope > .dropdown-menu .active"},Tab=function(){function e(e){this._element=e,Data.setData(this._element,DATA_KEY$9,this)}var t=e.prototype;return t.show=function(){var e=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(ClassName$9.ACTIVE)||this._element.classList.contains(ClassName$9.DISABLED))){var t,n,i=SelectorEngine.closest(this._element,Selector$9.NAV_LIST_GROUP),r=getSelectorFromElement(this._element);if(i){var a="UL"===i.nodeName||"OL"===i.nodeName?Selector$9.ACTIVE_UL:Selector$9.ACTIVE;n=(n=makeArray(SelectorEngine.find(a,i)))[n.length-1]}var o=null;if(n&&(o=EventHandler.trigger(n,Event$a.HIDE,{relatedTarget:this._element})),!(EventHandler.trigger(this._element,Event$a.SHOW,{relatedTarget:n}).defaultPrevented||null!==o&&o.defaultPrevented)){r&&(t=SelectorEngine.findOne(r)),this._activate(this._element,i);var s=function(){EventHandler.trigger(n,Event$a.HIDDEN,{relatedTarget:e._element}),EventHandler.trigger(e._element,Event$a.SHOWN,{relatedTarget:n})};t?this._activate(t,t.parentNode,s):s()}}},t.dispose=function(){Data.removeData(this._element,DATA_KEY$9),this._element=null},t._activate=function(e,t,n){var i=this,r=(!t||"UL"!==t.nodeName&&"OL"!==t.nodeName?SelectorEngine.children(t,Selector$9.ACTIVE):SelectorEngine.find(Selector$9.ACTIVE_UL,t))[0],a=n&&r&&r.classList.contains(ClassName$9.FADE),o=function(){return i._transitionComplete(e,r,n)};if(r&&a){var s=getTransitionDurationFromElement(r);r.classList.remove(ClassName$9.SHOW),EventHandler.one(r,TRANSITION_END,o),emulateTransitionEnd(r,s)}else o()},t._transitionComplete=function(e,t,n){if(t){t.classList.remove(ClassName$9.ACTIVE);var i=SelectorEngine.findOne(Selector$9.DROPDOWN_ACTIVE_CHILD,t.parentNode);i&&i.classList.remove(ClassName$9.ACTIVE),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}(e.classList.add(ClassName$9.ACTIVE),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),reflow(e),e.classList.contains(ClassName$9.FADE)&&e.classList.add(ClassName$9.SHOW),e.parentNode&&e.parentNode.classList.contains(ClassName$9.DROPDOWN_MENU))&&(SelectorEngine.closest(e,Selector$9.DROPDOWN)&&makeArray(SelectorEngine.find(Selector$9.DROPDOWN_TOGGLE)).forEach(function(e){return e.classList.add(ClassName$9.ACTIVE)}),e.setAttribute("aria-expanded",!0));n&&n()},e._jQueryInterface=function(t){return this.each(function(){var n=Data.getData(this,DATA_KEY$9)||new e(this);if("string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$9)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$9}}]),e}();if(EventHandler.on(document,Event$a.CLICK_DATA_API,Selector$9.DATA_TOGGLE,function(e){e.preventDefault(),(Data.getData(this,DATA_KEY$9)||new Tab(this)).show()}),void 0!==jQuery){var JQUERY_NO_CONFLICT$9=jQuery.fn[NAME$9];jQuery.fn[NAME$9]=Tab._jQueryInterface,jQuery.fn[NAME$9].Constructor=Tab,jQuery.fn[NAME$9].noConflict=function(){return jQuery.fn[NAME$9]=JQUERY_NO_CONFLICT$9,Tab._jQueryInterface}}var NAME$a="toast",VERSION$a="4.3.1",DATA_KEY$a="bs.toast",EVENT_KEY$a="."+DATA_KEY$a,Event$b={CLICK_DISMISS:"click.dismiss"+EVENT_KEY$a,HIDE:"hide"+EVENT_KEY$a,HIDDEN:"hidden"+EVENT_KEY$a,SHOW:"show"+EVENT_KEY$a,SHOWN:"shown"+EVENT_KEY$a},ClassName$a={FADE:"fade",HIDE:"hide",SHOW:"show",SHOWING:"showing"},DefaultType$7={animation:"boolean",autohide:"boolean",delay:"number"},Default$7={animation:!0,autohide:!0,delay:500},Selector$a={DATA_DISMISS:'[data-dismiss="toast"]'},Toast=function(){function e(e,t){this._element=e,this._config=this._getConfig(t),this._timeout=null,this._setListeners(),Data.setData(e,DATA_KEY$a,this)}var t=e.prototype;return t.show=function(){var e=this;if(!EventHandler.trigger(this._element,Event$b.SHOW).defaultPrevented){this._config.animation&&this._element.classList.add(ClassName$a.FADE);var t=function(){e._element.classList.remove(ClassName$a.SHOWING),e._element.classList.add(ClassName$a.SHOW),EventHandler.trigger(e._element,Event$b.SHOWN),e._config.autohide&&(e._timeout=setTimeout(function(){e.hide()},e._config.delay))};if(this._element.classList.remove(ClassName$a.HIDE),reflow(this._element),this._element.classList.add(ClassName$a.SHOWING),this._config.animation){var n=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,t),emulateTransitionEnd(this._element,n)}else t()}},t.hide=function(){var e=this;if(this._element.classList.contains(ClassName$a.SHOW)&&!EventHandler.trigger(this._element,Event$b.HIDE).defaultPrevented){var t=function(){e._element.classList.add(ClassName$a.HIDE),EventHandler.trigger(e._element,Event$b.HIDDEN)};if(this._element.classList.remove(ClassName$a.SHOW),this._config.animation){var n=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,t),emulateTransitionEnd(this._element,n)}else t()}},t.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(ClassName$a.SHOW)&&this._element.classList.remove(ClassName$a.SHOW),EventHandler.off(this._element,Event$b.CLICK_DISMISS),Data.removeData(this._element,DATA_KEY$a),this._element=null,this._config=null},t._getConfig=function(e){return e=_objectSpread2({},Default$7,{},Manipulator.getDataAttributes(this._element),{},"object"==typeof e&&e?e:{}),typeCheckConfig(NAME$a,e,this.constructor.DefaultType),e},t._setListeners=function(){var e=this;EventHandler.on(this._element,Event$b.CLICK_DISMISS,Selector$a.DATA_DISMISS,function(){return e.hide()})},e._jQueryInterface=function(t){return this.each(function(){var n=Data.getData(this,DATA_KEY$a);if(n||(n=new e(this,"object"==typeof t&&t)),"string"==typeof t){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t](this)}})},e._getInstance=function(e){return Data.getData(e,DATA_KEY$a)},_createClass(e,null,[{key:"VERSION",get:function(){return VERSION$a}},{key:"DefaultType",get:function(){return DefaultType$7}},{key:"Default",get:function(){return Default$7}}]),e}();if(void 0!==jQuery){var JQUERY_NO_CONFLICT$a=jQuery.fn[NAME$a];jQuery.fn[NAME$a]=Toast._jQueryInterface,jQuery.fn[NAME$a].Constructor=Toast,jQuery.fn[NAME$a].noConflict=function(){return jQuery.fn[NAME$a]=JQUERY_NO_CONFLICT$a,Toast._jQueryInterface}}export{Alert,Button,Carousel,Collapse,Dropdown,Modal,Popover,ScrollSpy,Tab,Toast,Tooltip}; //# sourceMappingURL=bootstrap.esm.min.js.map
\ No newline at end of file diff --git a/dist/js/bootstrap.esm.min.js.map b/dist/js/bootstrap.esm.min.js.map index 017db1365f..754164a6d9 100644 --- a/dist/js/bootstrap.esm.min.js.map +++ b/dist/js/bootstrap.esm.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/event-handler.js","../../js/src/dom/selector-engine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","_window$getComputedSt","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","CustomEvent","bubbles","cancelable","detail","initCustomEvent","workingDefaultPrevented","e","preventDefault","defaultPrevented","origPreventDefault","Event","this","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","uidEventList","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","_normalizeParams","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","isNative","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","NODE_TEXT","SelectorEngine","findFn","children","filter","child","_this","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","start","_this3","pointerType","clientX","touches","end","clearTimeout","itemImg","move","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","activeElementIndex","nextElement","nextElementIndex","isCycling","nextElementInterval","parseInt","defaultInterval","_this4","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","Popper","referenceElement","_getPopperConfig","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","hideEvent","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","_this8","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","_this9","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","_this10","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","active","_transitionComplete","dropdownChild","dropdown","SHOWING","autohide","Toast"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\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 if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\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 const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\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 static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n SelectorEngine.findOne(Selector.DATA_TOGGLE, parent).focus()\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n this._hideModalHandler\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = EventHandler.trigger(this._element, Event.SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n"]}
\ No newline at end of file +{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/event-handler.js","../../js/src/dom/selector-engine.js","../../js/src/alert/alert.js","../../js/src/button/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel/carousel.js","../../js/src/collapse/collapse.js","../../js/src/dropdown/dropdown.js","../../js/src/modal/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip/tooltip.js","../../js/src/popover/popover.js","../../js/src/scrollspy/scrollspy.js","../../js/src/tab/tab.js","../../js/src/toast/toast.js"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","_window$getComputedSt","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","CustomEvent","bubbles","cancelable","detail","initCustomEvent","workingDefaultPrevented","e","preventDefault","defaultPrevented","origPreventDefault","Event","this","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","uidEventList","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","_normalizeParams","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","isNative","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","NODE_TEXT","SelectorEngine","findFn","children","filter","child","_this","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread2","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","start","_this3","pointerType","clientX","touches","end","clearTimeout","itemImg","move","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","activeElementIndex","nextElement","nextElementIndex","isCycling","nextElementInterval","parseInt","defaultInterval","_this4","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","selected","triggerArray","isOpen","triggerData","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","Popper","referenceElement","_getPopperConfig","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","_this8","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","_this9","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","_this10","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","addAttachmentClass","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","hideEvent","active","_transitionComplete","dropdownChild","dropdown","SHOWING","autohide","Toast"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n const siblings = []\n\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\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 if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\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 const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\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 static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n const selector = getSelectorFromElement(element)\n const selected = selector ? SelectorEngine.findOne(selector) : null\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n const parent = Dropdown._getParentFromElement(this._element)\n\n return SelectorEngine.findOne(Selector.MENU, parent)\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n SelectorEngine.findOne(Selector.DATA_TOGGLE, parent).focus()\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n const selector = getSelectorFromElement(this)\n const target = SelectorEngine.findOne(selector)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from '../util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from '../util/sanitizer'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide() {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n this._popper.destroy()\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n this._hideModalHandler\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport Data from '../dom/data'\nimport SelectorEngine from '../dom/selector-engine'\nimport Tooltip from '../tooltip/tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = EventHandler.trigger(this._element, Event.SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n reflow(this._element)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n"]}
\ No newline at end of file diff --git a/dist/js/bootstrap.js b/dist/js/bootstrap.js index 4b9a425771..1742ea4087 100644 --- a/dist/js/bootstrap.js +++ b/dist/js/bootstrap.js @@ -42,20 +42,35 @@ return obj; } - function _objectSpread(target) { + function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + if (enumerableOnly) symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + keys.push.apply(keys, symbols); + } + + return keys; + } + + function _objectSpread2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; - var ownKeys = Object.keys(source); - if (typeof Object.getOwnPropertySymbols === 'function') { - ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { - return Object.getOwnPropertyDescriptor(source, sym).enumerable; - })); + if (i % 2) { + ownKeys(source, true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(source).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); } - - ownKeys.forEach(function (key) { - _defineProperty(target, key, source[key]); - }); } return target; @@ -748,10 +763,6 @@ element = document.documentElement; } - if (typeof selector !== 'string') { - return null; - } - return find.call(element, selector); }, findOne: function findOne$1(selector, element) { @@ -759,29 +770,17 @@ element = document.documentElement; } - if (typeof selector !== 'string') { - return null; - } - return findOne.call(element, selector); }, children: function children(element, selector) { var _this = this; - if (typeof selector !== 'string') { - return null; - } - var children = makeArray(element.children); return children.filter(function (child) { return _this.matches(child, selector); }); }, parents: function parents(element, selector) { - if (typeof selector !== 'string') { - return null; - } - var parents = []; var ancestor = element.parentNode; @@ -796,17 +795,9 @@ return parents; }, closest: function closest$1(element, selector) { - if (typeof selector !== 'string') { - return null; - } - return closest.call(element, selector); }, prev: function prev(element, selector) { - if (typeof selector !== 'string') { - return null; - } - var siblings = []; var previous = element.previousSibling; @@ -921,8 +912,8 @@ } var transitionDuration = getTransitionDurationFromElement(element); - EventHandler.one(element, TRANSITION_END, function (event) { - return _this._destroyElement(element, event); + EventHandler.one(element, TRANSITION_END, function () { + return _this._destroyElement(element); }); emulateTransitionEnd(element, transitionDuration); }; @@ -988,6 +979,8 @@ * add .alert to jQuery only if jQuery is present */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT = jQuery.fn[NAME]; jQuery.fn[NAME] = Alert._jQueryInterface; @@ -1142,7 +1135,6 @@ if (!data) { data = new Button(button); - Data.setData(button, DATA_KEY$1, data); } data.toggle(); @@ -1168,6 +1160,8 @@ * add .button to jQuery only if jQuery is present */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$1 = jQuery.fn[NAME$1]; jQuery.fn[NAME$1] = Button._jQueryInterface; @@ -1223,7 +1217,7 @@ return {}; } - var attributes = _objectSpread({}, element.dataset); + var attributes = _objectSpread2({}, element.dataset); Object.keys(attributes).forEach(function (key) { attributes[key] = normalizeData(attributes[key]); @@ -1466,7 +1460,7 @@ ; _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default, config); + config = _objectSpread2({}, Default, {}, config); typeCheckConfig(NAME$2, config, DefaultType); return config; }; @@ -1509,7 +1503,7 @@ }); } - if (this._config.touch) { + if (this._config.touch && this._touchSupported) { this._addTouchEventListeners(); } }; @@ -1517,10 +1511,6 @@ _proto._addTouchEventListeners = function _addTouchEventListeners() { var _this3 = this; - if (!this._touchSupported) { - return; - } - var start = function start(event) { if (_this3._pointerEvent && PointerType[event.pointerType.toUpperCase()]) { _this3.touchStartX = event.clientX; @@ -1769,10 +1759,10 @@ Carousel._carouselInterface = function _carouselInterface(element, config) { var data = Data.getData(element, DATA_KEY$2); - var _config = _objectSpread({}, Default, Manipulator.getDataAttributes(element)); + var _config = _objectSpread2({}, Default, {}, Manipulator.getDataAttributes(element)); if (typeof config === 'object') { - _config = _objectSpread({}, _config, config); + _config = _objectSpread2({}, _config, {}, config); } var action = typeof config === 'string' ? config : _config.slide; @@ -1814,7 +1804,7 @@ return; } - var config = _objectSpread({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this)); + var config = _objectSpread2({}, Manipulator.getDataAttributes(target), {}, Manipulator.getDataAttributes(this)); var slideIndex = this.getAttribute('data-slide-to'); @@ -1871,6 +1861,8 @@ * add .carousel to jQuery only if jQuery is present */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$2 = jQuery.fn[NAME$2]; jQuery.fn[NAME$2] = Carousel._jQueryInterface; @@ -2147,7 +2139,7 @@ ; _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default$1, config); + config = _objectSpread2({}, Default$1, {}, config); config.toggle = Boolean(config.toggle); // Coerce string values typeCheckConfig(NAME$3, config, DefaultType$1); @@ -2176,7 +2168,10 @@ var selector = "[data-toggle=\"collapse\"][data-parent=\"" + parent + "\"]"; makeArray(SelectorEngine.find(selector, parent)).forEach(function (element) { - _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]); + var selector = getSelectorFromElement(element); + var selected = selector ? SelectorEngine.findOne(selector) : null; + + _this3._addAriaAndCollapsedClass(selected, [element]); }); return parent; }; @@ -2200,15 +2195,10 @@ } // Static ; - Collapse._getTargetFromElement = function _getTargetFromElement(element) { - var selector = getSelectorFromElement(element); - return selector ? SelectorEngine.findOne(selector) : null; - }; - Collapse._collapseInterface = function _collapseInterface(element, config) { var data = Data.getData(element, DATA_KEY$3); - var _config = _objectSpread({}, Default$1, Manipulator.getDataAttributes(element), typeof config === 'object' && config ? config : {}); + var _config = _objectSpread2({}, Default$1, {}, Manipulator.getDataAttributes(element), {}, typeof config === 'object' && config ? config : {}); if (!data && _config.toggle && /show|hide/.test(config)) { _config.toggle = false; @@ -2293,6 +2283,8 @@ * add .collapse to jQuery only if jQuery is present */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$3 = jQuery.fn[NAME$3]; jQuery.fn[NAME$3] = Collapse._jQueryInterface; @@ -2555,21 +2547,15 @@ }; _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, this.constructor.Default, Manipulator.getDataAttributes(this._element), config); + config = _objectSpread2({}, this.constructor.Default, {}, Manipulator.getDataAttributes(this._element), {}, config); typeCheckConfig(NAME$4, config, this.constructor.DefaultType); return config; }; _proto._getMenuElement = function _getMenuElement() { - if (!this._menu) { - var parent = Dropdown._getParentFromElement(this._element); - - if (parent) { - this._menu = SelectorEngine.findOne(Selector$4.MENU, parent); - } - } + var parent = Dropdown._getParentFromElement(this._element); - return this._menu; + return SelectorEngine.findOne(Selector$4.MENU, parent); }; _proto._getPlacement = function _getPlacement() { @@ -2604,7 +2590,7 @@ if (typeof this._config.offset === 'function') { offset.fn = function (data) { - data.offsets = _objectSpread({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {}); + data.offsets = _objectSpread2({}, data.offsets, {}, _this2._config.offset(data.offsets, _this2._element) || {}); return data; }; } else { @@ -2836,6 +2822,8 @@ * add .dropdown to jQuery only if jQuery is present */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$4 = jQuery.fn[NAME$4]; jQuery.fn[NAME$4] = Dropdown._jQueryInterface; @@ -2992,7 +2980,7 @@ var hideEvent = EventHandler.trigger(this._element, Event$6.HIDE); - if (!this._isShown || hideEvent.defaultPrevented) { + if (hideEvent.defaultPrevented) { return; } @@ -3055,7 +3043,7 @@ ; _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default$3, config); + config = _objectSpread2({}, Default$3, {}, config); typeCheckConfig(NAME$5, config, DefaultType$3); return config; }; @@ -3135,7 +3123,7 @@ _this5.hide(); } }); - } else if (!this._isShown) { + } else { EventHandler.off(this._element, Event$6.KEYDOWN_DISMISS); } }; @@ -3144,8 +3132,8 @@ var _this6 = this; if (this._isShown) { - EventHandler.on(window, Event$6.RESIZE, function (event) { - return _this6.handleUpdate(event); + EventHandler.on(window, Event$6.RESIZE, function () { + return _this6._adjustDialog(); }); } else { EventHandler.off(window, Event$6.RESIZE); @@ -3175,11 +3163,9 @@ }; _proto._removeBackdrop = function _removeBackdrop() { - if (this._backdrop) { - this._backdrop.parentNode.removeChild(this._backdrop); + this._backdrop.parentNode.removeChild(this._backdrop); - this._backdrop = null; - } + this._backdrop = null; }; _proto._showBackdrop = function _showBackdrop(callback) { @@ -3219,10 +3205,6 @@ this._backdrop.classList.add(ClassName$5.SHOW); - if (!callback) { - return; - } - if (!animate) { callback(); return; @@ -3237,9 +3219,7 @@ var callbackRemove = function callbackRemove() { _this8._removeBackdrop(); - if (callback) { - callback(); - } + callback(); }; if (this._element.classList.contains(ClassName$5.FADE)) { @@ -3250,7 +3230,7 @@ } else { callbackRemove(); } - } else if (callback) { + } else { callback(); } } // ---------------------------------------------------------------------- @@ -3356,7 +3336,7 @@ return this.each(function () { var data = Data.getData(this, DATA_KEY$5); - var _config = _objectSpread({}, Default$3, Manipulator.getDataAttributes(this), typeof config === 'object' && config ? config : {}); + var _config = _objectSpread2({}, Default$3, {}, Manipulator.getDataAttributes(this), {}, typeof config === 'object' && config ? config : {}); if (!data) { data = new Modal(this, _config); @@ -3402,14 +3382,8 @@ EventHandler.on(document, Event$6.CLICK_DATA_API, Selector$5.DATA_TOGGLE, function (event) { var _this10 = this; - var target; var selector = getSelectorFromElement(this); - - if (selector) { - target = SelectorEngine.findOne(selector); - } - - var config = Data.getData(target, DATA_KEY$5) ? 'toggle' : _objectSpread({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this)); + var target = SelectorEngine.findOne(selector); if (this.tagName === 'A' || this.tagName === 'AREA') { event.preventDefault(); @@ -3430,6 +3404,8 @@ var data = Data.getData(target, DATA_KEY$5); if (!data) { + var config = _objectSpread2({}, Manipulator.getDataAttributes(target), {}, Manipulator.getDataAttributes(this)); + data = new Modal(target, config); } @@ -3439,8 +3415,11 @@ * ------------------------------------------------------------------------ * jQuery * ------------------------------------------------------------------------ + * add .modal to jQuery only if jQuery is present */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$5 = jQuery.fn[NAME$5]; jQuery.fn[NAME$5] = Modal._jQueryInterface; @@ -3565,7 +3544,7 @@ }; for (var i = 0, len = elements.length; i < len; i++) { - var _ret = _loop(i, len); + var _ret = _loop(i); if (_ret === "continue") continue; } @@ -3794,7 +3773,7 @@ var attachment = this._getAttachment(placement); - this.addAttachmentClass(attachment); + this._addAttachmentClass(attachment); var container = this._getContainer(); @@ -3863,7 +3842,7 @@ } }; - _proto.hide = function hide(callback) { + _proto.hide = function hide() { var _this2 = this; var tip = this.getTipElement(); @@ -3879,13 +3858,7 @@ EventHandler.trigger(_this2.element, _this2.constructor.Event.HIDDEN); - if (_this2._popper !== null) { - _this2._popper.destroy(); - } - - if (callback) { - callback(); - } + _this2._popper.destroy(); }; var hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE); @@ -3929,10 +3902,6 @@ return Boolean(this.getTitle()); }; - _proto.addAttachmentClass = function addAttachmentClass(attachment) { - this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment); - }; - _proto.getTipElement = function getTipElement() { if (this.tip) { return this.tip; @@ -3956,7 +3925,7 @@ return; } - if (typeof content === 'object' && (content.nodeType || content.jquery)) { + if (typeof content === 'object' && isElement(content)) { if (content.jquery) { content = content[0]; } // content is a DOM node or a jQuery @@ -3996,6 +3965,10 @@ } // Private ; + _proto._addAttachmentClass = function _addAttachmentClass(attachment) { + this.getTipElement().classList.add(CLASS_PREFIX + "-" + attachment); + }; + _proto._getOffset = function _getOffset() { var _this3 = this; @@ -4003,7 +3976,7 @@ if (typeof this.config.offset === 'function') { offset.fn = function (data) { - data.offsets = _objectSpread({}, data.offsets, _this3.config.offset(data.offsets, _this3.element) || {}); + data.offsets = _objectSpread2({}, data.offsets, {}, _this3.config.offset(data.offsets, _this3.element) || {}); return data; }; } else { @@ -4059,7 +4032,7 @@ EventHandler.on(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', this._hideModalHandler); if (this.config.selector) { - this.config = _objectSpread({}, this.config, { + this.config = _objectSpread2({}, this.config, { trigger: 'manual', selector: '' }); @@ -4164,7 +4137,7 @@ config.container = config.container[0]; } - config = _objectSpread({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {}); + config = _objectSpread2({}, this.constructor.Default, {}, dataAttributes, {}, typeof config === 'object' && config ? config : {}); if (typeof config.delay === 'number') { config.delay = { @@ -4223,7 +4196,7 @@ this._cleanTipClass(); - this.addAttachmentClass(this._getAttachment(popperData.placement)); + this._addAttachmentClass(this._getAttachment(popperData.placement)); }; _proto._fixTransition = function _fixTransition() { @@ -4316,6 +4289,8 @@ * add .tooltip to jQuery only if jQuery is present */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$6 = jQuery.fn[NAME$6]; @@ -4341,14 +4316,14 @@ var CLASS_PREFIX$1 = 'bs-popover'; var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g'); - var Default$5 = _objectSpread({}, Tooltip.Default, { + var Default$5 = _objectSpread2({}, Tooltip.Default, { placement: 'right', trigger: 'click', content: '', template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>' }); - var DefaultType$5 = _objectSpread({}, Tooltip.DefaultType, { + var DefaultType$5 = _objectSpread2({}, Tooltip.DefaultType, { content: '(string|element|function)' }); @@ -4509,6 +4484,8 @@ * ------------------------------------------------------------------------ */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$7 = jQuery.fn[NAME$7]; @@ -4652,7 +4629,7 @@ ; _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default$6, typeof config === 'object' && config ? config : {}); + config = _objectSpread2({}, Default$6, {}, typeof config === 'object' && config ? config : {}); if (typeof config.target !== 'string') { var id = config.target.id; @@ -4823,6 +4800,8 @@ * ------------------------------------------------------------------------ */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$8 = jQuery.fn[NAME$8]; jQuery.fn[NAME$8] = ScrollSpy._jQueryInterface; @@ -5060,6 +5039,8 @@ * add .tab to jQuery only if jQuery is present */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$9 = jQuery.fn[NAME$9]; jQuery.fn[NAME$9] = Tab._jQueryInterface; @@ -5160,6 +5141,8 @@ this._element.classList.remove(ClassName$a.HIDE); + reflow(this._element); + this._element.classList.add(ClassName$a.SHOWING); if (this._config.animation) { @@ -5217,7 +5200,7 @@ ; _proto._getConfig = function _getConfig(config) { - config = _objectSpread({}, Default$7, Manipulator.getDataAttributes(this._element), typeof config === 'object' && config ? config : {}); + config = _objectSpread2({}, Default$7, {}, Manipulator.getDataAttributes(this._element), {}, typeof config === 'object' && config ? config : {}); typeCheckConfig(NAME$a, config, this.constructor.DefaultType); return config; }; @@ -5281,6 +5264,8 @@ * add .toast to jQuery only if jQuery is present */ + /* istanbul ignore if */ + if (typeof jQuery !== 'undefined') { var JQUERY_NO_CONFLICT$a = jQuery.fn[NAME$a]; diff --git a/dist/js/bootstrap.js.map b/dist/js/bootstrap.js.map index 0a095d65f1..52fdd17cb7 100644 --- a/dist/js/bootstrap.js.map +++ b/dist/js/bootstrap.js.map @@ -1 +1 @@ -{"version":3,"file":"bootstrap.js","sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/event-handler.js","../../js/src/dom/selector-engine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\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 if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\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 const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\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 static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n SelectorEngine.findOne(Selector.DATA_TOGGLE, parent).focus()\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n this._hideModalHandler\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = EventHandler.trigger(this._element, Event.SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","cEvent","CustomEvent","bubbles","cancelable","detail","initCustomEvent","workingDefaultPrevented","e","preventDefault","defaultPrevented","origPreventDefault","Event","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","uidEventList","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","NODE_TEXT","SelectorEngine","findFn","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","SHOWING","autohide","Toast"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"bootstrap.js","sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/event-handler.js","../../js/src/dom/selector-engine.js","../../js/src/alert/alert.js","../../js/src/button/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel/carousel.js","../../js/src/collapse/collapse.js","../../js/src/dropdown/dropdown.js","../../js/src/modal/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip/tooltip.js","../../js/src/popover/popover.js","../../js/src/scrollspy/scrollspy.js","../../js/src/tab/tab.js","../../js/src/toast/toast.js","../../js/index.umd.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n const siblings = []\n\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\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 if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\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 const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\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 static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n const selector = getSelectorFromElement(element)\n const selected = selector ? SelectorEngine.findOne(selector) : null\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n const parent = Dropdown._getParentFromElement(this._element)\n\n return SelectorEngine.findOne(Selector.MENU, parent)\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n SelectorEngine.findOne(Selector.DATA_TOGGLE, parent).focus()\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n const selector = getSelectorFromElement(this)\n const target = SelectorEngine.findOne(selector)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from '../util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from '../util/sanitizer'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide() {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n this._popper.destroy()\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n this._hideModalHandler\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport Data from '../dom/data'\nimport SelectorEngine from '../dom/selector-engine'\nimport Tooltip from '../tooltip/tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = EventHandler.trigger(this._element, Event.SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n reflow(this._element)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert/alert'\nimport Button from './src/button/button'\nimport Carousel from './src/carousel/carousel'\nimport Collapse from './src/collapse/collapse'\nimport Dropdown from './src/dropdown/dropdown'\nimport Modal from './src/modal/modal'\nimport Popover from './src/popover/popover'\nimport ScrollSpy from './src/scrollspy/scrollspy'\nimport Tab from './src/tab/tab'\nimport Toast from './src/toast/toast'\nimport Tooltip from './src/tooltip/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","cEvent","CustomEvent","bubbles","cancelable","detail","initCustomEvent","workingDefaultPrevented","e","preventDefault","defaultPrevented","origPreventDefault","Event","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","uidEventList","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","NODE_TEXT","SelectorEngine","findFn","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","hasWidth","jquery","selected","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","addAttachmentClass","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","SHOWING","autohide","Toast"],"mappings":"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"}
\ No newline at end of file diff --git a/dist/js/bootstrap.min.js b/dist/js/bootstrap.min.js index 88679b8de9..e61e4050d1 100644 --- a/dist/js/bootstrap.min.js +++ b/dist/js/bootstrap.min.js @@ -3,5 +3,5 @@ * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("popper.js")):"function"==typeof define&&define.amd?define(["popper.js"],e):(t=t||self).bootstrap=e(t.Popper)}(this,function(t){"use strict";function e(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function n(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),o.forEach(function(e){i(t,e,n[e])})}return t}t=t&&t.hasOwnProperty("default")?t.default:t;var r,s,a,l="transitionend",c=window.jQuery,u=function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},f=function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},h=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,o=parseFloat(n),r=parseFloat(i);return o||r?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},d=function(t){var e=document.createEvent("HTMLEvents");e.initEvent(l,!0,!0),t.dispatchEvent(e)},g=function(t){return(t[0]||t).nodeType},_=function(t,e){var n=!1,i=e+5;t.addEventListener(l,function e(){n=!0,t.removeEventListener(l,e)}),setTimeout(function(){n||d(t)},i)},p=function(t,e,n){Object.keys(n).forEach(function(i){var o,r=n[i],s=e[i],a=s&&g(s)?"element":(o=s,{}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+r+'".')})},m=function(t){return t?[].slice.call(t):[]},v=function(t){return!!t&&(!!(t.style&&t.parentNode&&t.parentNode.style)&&("none"!==t.style.display&&"none"!==t.parentNode.style.display&&"hidden"!==t.style.visibility))},y=function(){return function(){}},E=function(t){return t.offsetHeight},b=(r={},s=1,{set:function(t,e,n){"undefined"==typeof t.key&&(t.key={key:e,id:s},s++),r[t.key.id]=n},get:function(t,e){if(!t||"undefined"==typeof t.key)return null;var n=t.key;return n.key===e?r[n.id]:null},delete:function(t,e){if("undefined"!=typeof t.key){var n=t.key;n.key===e&&(delete r[n.id],delete t.key)}}}),D={setData:function(t,e,n){b.set(t,e,n)},getData:function(t,e){return b.get(t,e)},removeData:function(t,e){b.delete(t,e)}},T=Element.prototype,I=T.matches,A=T.closest,S=Element.prototype.querySelectorAll,w=Element.prototype.querySelector,L=function(t,e){return new CustomEvent(t,e)};if("function"!=typeof window.CustomEvent&&(L=function(t,e){e=e||{bubbles:!1,cancelable:!1,detail:null};var n=document.createEvent("CustomEvent");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n}),!((a=document.createEvent("CustomEvent")).initEvent("Bootstrap",!0,!0),a.preventDefault(),a.defaultPrevented)){var C=Event.prototype.preventDefault;Event.prototype.preventDefault=function(){this.cancelable&&(C.call(this),Object.defineProperty(this,"defaultPrevented",{get:function(){return!0},configurable:!0}))}}var O=function(){var t=L("Bootstrap",{cancelable:!0}),e=document.createElement("div");return e.addEventListener("Bootstrap",function(){return null}),t.preventDefault(),e.dispatchEvent(t),t.defaultPrevented}();I||(I=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),A||(A=function(t){var e=this;do{if(I.call(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null});var N=/:scope\b/;(function(){var t=document.createElement("div");try{t.querySelectorAll(":scope *")}catch(t){return!1}return!0})()||(S=function(t){if(!N.test(t))return this.querySelectorAll(t);var e=Boolean(this.id);e||(this.id=u("scope"));var n=null;try{t=t.replace(N,"#"+this.id),n=this.querySelectorAll(t)}finally{e||this.removeAttribute("id")}return n},w=function(t){if(!N.test(t))return this.querySelector(t);var e=S.call(this,t);return"undefined"!=typeof e[0]?e[0]:null});var k=/[^.]*(?=\..*)\.|.*/,P=/\..*/,H=/^key/,M=/::\d+$/,j={},R=1,W={mouseenter:"mouseover",mouseleave:"mouseout"},x=["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"];function U(t,e){return e&&e+"::"+R++||t.uidEvent||R++}function K(t){var e=U(t);return t.uidEvent=e,j[e]=j[e]||{},j[e]}function V(t,e){null===t.which&&H.test(t.type)&&(t.which=null===t.charCode?t.keyCode:t.charCode),t.delegateTarget=e}function B(t,e,n){void 0===n&&(n=null);for(var i=Object.keys(t),o=0,r=i.length;o<r;o++){var s=t[i[o]];if(s.originalHandler===e&&s.delegationSelector===n)return s}return null}function F(t,e,n){var i="string"==typeof e,o=i?n:e,r=t.replace(P,""),s=W[r];return s&&(r=s),x.indexOf(r)>-1||(r=t),[i,o,r]}function Q(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var r=F(e,n,i),s=r[0],a=r[1],l=r[2],c=K(t),u=c[l]||(c[l]={}),f=B(u,a,s?n:null);if(f)f.oneOff=f.oneOff&&o;else{var h=U(a,e.replace(k,"")),d=s?function(t,e,n){return function i(o){for(var r=t.querySelectorAll(e),s=o.target;s&&s!==this;s=s.parentNode)for(var a=r.length;a--;)if(r[a]===s)return V(o,s),i.oneOff&&G.off(t,o.type,n),n.apply(s,[o]);return null}}(t,n,i):function(t,e){return function n(i){return V(i,t),n.oneOff&&G.off(t,i.type,e),e.apply(t,[i])}}(t,n);d.delegationSelector=s?n:null,d.originalHandler=a,d.oneOff=o,d.uidEvent=h,u[h]=d,t.addEventListener(l,d,s)}}}function Y(t,e,n,i,o){var r=B(e[n],i,o);r&&(t.removeEventListener(n,r,Boolean(o)),delete e[n][r.uidEvent])}var G={on:function(t,e,n,i){Q(t,e,n,i,!1)},one:function(t,e,n,i){Q(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=F(e,n,i),r=o[0],s=o[1],a=o[2],l=a!==e,c=K(t),u="."===e.charAt(0);if("undefined"==typeof s){u&&Object.keys(c).forEach(function(n){!function(t,e,n,i){var o=e[n]||{};Object.keys(o).forEach(function(r){if(r.indexOf(i)>-1){var s=o[r];Y(t,e,n,s.originalHandler,s.delegationSelector)}})}(t,c,n,e.substr(1))});var f=c[a]||{};Object.keys(f).forEach(function(n){var i=n.replace(M,"");if(!l||e.indexOf(i)>-1){var o=f[n];Y(t,c,a,o.originalHandler,o.delegationSelector)}})}else{if(!c||!c[a])return;Y(t,c,a,s,r?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=e.replace(P,""),r=e!==o,s=x.indexOf(o)>-1,a=!0,l=!0,u=!1,f=null;return r&&"undefined"!=typeof c&&(i=c.Event(e,n),c(t).trigger(i),a=!i.isPropagationStopped(),l=!i.isImmediatePropagationStopped(),u=i.isDefaultPrevented()),s?(f=document.createEvent("HTMLEvents")).initEvent(o,a,!0):f=L(e,{bubbles:a,cancelable:!0}),"undefined"!=typeof n&&Object.keys(n).forEach(function(t){Object.defineProperty(f,t,{get:function(){return n[t]}})}),u&&(f.preventDefault(),O||Object.defineProperty(f,"defaultPrevented",{get:function(){return!0}})),l&&t.dispatchEvent(f),f.defaultPrevented&&"undefined"!=typeof i&&i.preventDefault(),f}},X={matches:function(t,e){return I.call(t,e)},find:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:S.call(e,t)},findOne:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:w.call(e,t)},children:function(t,e){var n=this;if("string"!=typeof e)return null;var i=m(t.children);return i.filter(function(t){return n.matches(t,e)})},parents:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.parentNode;return n},closest:function(t,e){return"string"!=typeof e?null:A.call(t,e)},prev:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.previousSibling;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.previousSibling;return n}},q="bs.alert",z="."+q,Z={CLOSE:"close"+z,CLOSED:"closed"+z,CLICK_DATA_API:"click"+z+".data-api"},$="alert",J="fade",tt="show",et=function(){function t(t){this._element=t,this._element&&D.setData(t,q,this)}var e=t.prototype;return e.close=function(t){var e=this._element;t&&(e=this._getRootElement(t));var n=this._triggerCloseEvent(e);null===n||n.defaultPrevented||this._removeElement(e)},e.dispose=function(){D.removeData(this._element,q),this._element=null},e._getRootElement=function(t){var e=f(t),n=!1;return e&&(n=X.findOne(e)),n||(n=X.closest(t,"."+$)),n},e._triggerCloseEvent=function(t){return G.trigger(t,Z.CLOSE)},e._removeElement=function(t){var e=this;if(t.classList.remove(tt),t.classList.contains(J)){var n=h(t);G.one(t,l,function(n){return e._destroyElement(t,n)}),_(t,n)}else this._destroyElement(t)},e._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),G.trigger(t,Z.CLOSED)},t._jQueryInterface=function(e){return this.each(function(){var n=D.getData(this,q);n||(n=new t(this)),"close"===e&&n[e](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},t._getInstance=function(t){return D.getData(t,q)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(G.on(document,Z.CLICK_DATA_API,'[data-dismiss="alert"]',et._handleDismiss(new et)),"undefined"!=typeof c){var nt=c.fn.alert;c.fn.alert=et._jQueryInterface,c.fn.alert.Constructor=et,c.fn.alert.noConflict=function(){return c.fn.alert=nt,et._jQueryInterface}}var it="bs.button",ot="."+it,rt="active",st="btn",at="focus",lt='[data-toggle^="button"]',ct='[data-toggle="buttons"]',ut='input:not([type="hidden"])',ft=".active",ht=".btn",dt={CLICK_DATA_API:"click"+ot+".data-api",FOCUS_DATA_API:"focus"+ot+".data-api",BLUR_DATA_API:"blur"+ot+".data-api"},gt=function(){function t(t){this._element=t,D.setData(t,it,this)}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=X.closest(this._element,ct);if(n){var i=X.findOne(ut,this._element);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(rt))t=!1;else{var o=X.findOne(ft,n);o&&o.classList.remove(rt)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(rt),G.trigger(i,"change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(rt)),t&&this._element.classList.toggle(rt)},e.dispose=function(){D.removeData(this._element,it),this._element=null},t._jQueryInterface=function(e){return this.each(function(){var n=D.getData(this,it);n||(n=new t(this)),"toggle"===e&&n[e]()})},t._getInstance=function(t){return D.getData(t,it)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(G.on(document,dt.CLICK_DATA_API,lt,function(t){t.preventDefault();var e=t.target;e.classList.contains(st)||(e=X.closest(e,ht));var n=D.getData(e,it);n||(n=new gt(e),D.setData(e,it,n)),n.toggle()}),G.on(document,dt.FOCUS_DATA_API,lt,function(t){var e=X.closest(t.target,ht);e&&e.classList.add(at)}),G.on(document,dt.BLUR_DATA_API,lt,function(t){var e=X.closest(t.target,ht);e&&e.classList.remove(at)}),"undefined"!=typeof c){var _t=c.fn.button;c.fn.button=gt._jQueryInterface,c.fn.button.Constructor=gt,c.fn.button.noConflict=function(){return c.fn.button=_t,gt._jQueryInterface}}function pt(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function mt(t){return t.replace(/[A-Z]/g,function(t){return t.toLowerCase()})}var vt={setDataAttribute:function(t,e,n){t.setAttribute("data-"+mt(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+mt(e))},getDataAttributes:function(t){if(!t)return{};var e=o({},t.dataset);return Object.keys(e).forEach(function(t){e[t]=pt(e[t])}),e},getDataAttribute:function(t,e){return pt(t.getAttribute("data-"+mt(e)))},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:function(t){return{top:t.offsetTop,left:t.offsetLeft}},toggleClass:function(t,e){t&&(t.classList.contains(e)?t.classList.remove(e):t.classList.add(e))}},yt="carousel",Et="bs.carousel",bt="."+Et,Dt={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Tt={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},It="next",At="prev",St="left",wt="right",Lt={SLIDE:"slide"+bt,SLID:"slid"+bt,KEYDOWN:"keydown"+bt,MOUSEENTER:"mouseenter"+bt,MOUSELEAVE:"mouseleave"+bt,TOUCHSTART:"touchstart"+bt,TOUCHMOVE:"touchmove"+bt,TOUCHEND:"touchend"+bt,POINTERDOWN:"pointerdown"+bt,POINTERUP:"pointerup"+bt,DRAG_START:"dragstart"+bt,LOAD_DATA_API:"load"+bt+".data-api",CLICK_DATA_API:"click"+bt+".data-api"},Ct="carousel",Ot="active",Nt="slide",kt="carousel-item-right",Pt="carousel-item-left",Ht="carousel-item-next",Mt="carousel-item-prev",jt="pointer-event",Rt={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",ITEM_IMG:".carousel-item img",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},Wt={TOUCH:"touch",PEN:"pen"},xt=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=X.findOne(Rt.INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),D.setData(t,Et,this)}var e=t.prototype;return e.next=function(){this._isSliding||this._slide(It)},e.nextWhenVisible=function(){!document.hidden&&v(this._element)&&this.next()},e.prev=function(){this._isSliding||this._slide(At)},e.pause=function(t){t||(this._isPaused=!0),X.findOne(Rt.NEXT_PREV,this._element)&&(d(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var e=this;this._activeElement=X.findOne(Rt.ACTIVE_ITEM,this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)G.one(this._element,Lt.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=t>n?It:At;this._slide(i,this._items[t])}},e.dispose=function(){G.off(this._element,bt),D.removeData(this._element,Et),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=o({},Dt,t),p(yt,t,Tt),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&G.on(this._element,Lt.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(G.on(this._element,Lt.MOUSEENTER,function(e){return t.pause(e)}),G.on(this._element,Lt.MOUSELEAVE,function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&Wt[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&Wt[e.pointerType.toUpperCase()]&&(t.touchDeltaX=e.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval))};m(X.find(Rt.ITEM_IMG,this._element)).forEach(function(t){G.on(t,Lt.DRAG_START,function(t){return t.preventDefault()})}),this._pointerEvent?(G.on(this._element,Lt.POINTERDOWN,function(t){return e(t)}),G.on(this._element,Lt.POINTERUP,function(t){return n(t)}),this._element.classList.add(jt)):(G.on(this._element,Lt.TOUCHSTART,function(t){return e(t)}),G.on(this._element,Lt.TOUCHMOVE,function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)}),G.on(this._element,Lt.TOUCHEND,function(t){return n(t)}))}},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?m(X.find(Rt.ITEM,t.parentNode)):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n=t===It,i=t===At,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+(t===At?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(X.findOne(Rt.ACTIVE_ITEM,this._element));return G.trigger(this._element,Lt.SLIDE,{relatedTarget:t,direction:e,from:i,to:n})},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=X.find(Rt.ACTIVE,this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove(Ot);var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add(Ot)}},e._slide=function(t,e){var n,i,o,r=this,s=X.findOne(Rt.ACTIVE_ITEM,this._element),a=this._getItemIndex(s),c=e||s&&this._getItemByDirection(t,s),u=this._getItemIndex(c),f=Boolean(this._interval);if(t===It?(n=Pt,i=Ht,o=St):(n=kt,i=Mt,o=wt),c&&c.classList.contains(Ot))this._isSliding=!1;else if(!this._triggerSlideEvent(c,o).defaultPrevented&&s&&c){if(this._isSliding=!0,f&&this.pause(),this._setActiveIndicatorElement(c),this._element.classList.contains(Nt)){c.classList.add(i),E(c),s.classList.add(n),c.classList.add(n);var d=parseInt(c.getAttribute("data-interval"),10);d?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=d):this._config.interval=this._config.defaultInterval||this._config.interval;var g=h(s);G.one(s,l,function(){c.classList.remove(n),c.classList.remove(i),c.classList.add(Ot),s.classList.remove(Ot),s.classList.remove(i),s.classList.remove(n),r._isSliding=!1,setTimeout(function(){G.trigger(r._element,Lt.SLID,{relatedTarget:c,direction:o,from:a,to:u})},0)}),_(s,g)}else s.classList.remove(Ot),c.classList.add(Ot),this._isSliding=!1,G.trigger(this._element,Lt.SLID,{relatedTarget:c,direction:o,from:a,to:u});f&&this.cycle()}},t._carouselInterface=function(e,n){var i=D.getData(e,Et),r=o({},Dt,vt.getDataAttributes(e));"object"==typeof n&&(r=o({},r,n));var s="string"==typeof n?n:r.slide;if(i||(i=new t(e,r)),"number"==typeof n)i.to(n);else if("string"==typeof s){if("undefined"==typeof i[s])throw new TypeError('No method named "'+s+'"');i[s]()}else r.interval&&r.ride&&(i.pause(),i.cycle())},t._jQueryInterface=function(e){return this.each(function(){t._carouselInterface(this,e)})},t._dataApiClickHandler=function(e){var n=f(this);if(n){var i=X.findOne(n);if(i&&i.classList.contains(Ct)){var r=o({},vt.getDataAttributes(i),vt.getDataAttributes(this)),s=this.getAttribute("data-slide-to");s&&(r.interval=!1),t._carouselInterface(i,r),s&&D.getData(i,Et).to(s),e.preventDefault()}}},t._getInstance=function(t){return D.getData(t,Et)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Dt}}]),t}();if(G.on(document,Lt.CLICK_DATA_API,Rt.DATA_SLIDE,xt._dataApiClickHandler),G.on(window,Lt.LOAD_DATA_API,function(){for(var t=m(X.find(Rt.DATA_RIDE)),e=0,n=t.length;e<n;e++)xt._carouselInterface(t[e],D.getData(t[e],Et))}),"undefined"!=typeof c){var Ut=c.fn[yt];c.fn[yt]=xt._jQueryInterface,c.fn[yt].Constructor=xt,c.fn[yt].noConflict=function(){return c.fn[yt]=Ut,xt._jQueryInterface}}var Kt="collapse",Vt="bs.collapse",Bt="."+Vt,Ft={toggle:!0,parent:""},Qt={toggle:"boolean",parent:"(string|element)"},Yt={SHOW:"show"+Bt,SHOWN:"shown"+Bt,HIDE:"hide"+Bt,HIDDEN:"hidden"+Bt,CLICK_DATA_API:"click"+Bt+".data-api"},Gt="show",Xt="collapse",qt="collapsing",zt="collapsed",Zt="width",$t="height",Jt={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},te=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=m(X.find('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=m(X.find(Jt.DATA_TOGGLE)),i=0,o=n.length;i<o;i++){var r=n[i],s=f(r),a=m(X.find(s)).filter(function(e){return e===t});null!==s&&a.length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle(),D.setData(t,Vt,this)}var e=t.prototype;return e.toggle=function(){this._element.classList.contains(Gt)?this.hide():this.show()},e.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains(Gt)){var n,i;this._parent&&0===(n=m(X.find(Jt.ACTIVES,this._parent)).filter(function(t){return"string"==typeof e._config.parent?t.getAttribute("data-parent")===e._config.parent:t.classList.contains(Xt)})).length&&(n=null);var o=X.findOne(this._selector);if(n){var r=n.filter(function(t){return o!==t});if((i=r[0]?D.getData(r[0],Vt):null)&&i._isTransitioning)return}if(!G.trigger(this._element,Yt.SHOW).defaultPrevented){n&&n.forEach(function(e){o!==e&&t._collapseInterface(e,"hide"),i||D.setData(e,Vt,null)});var s=this._getDimension();this._element.classList.remove(Xt),this._element.classList.add(qt),this._element.style[s]=0,this._triggerArray.length&&this._triggerArray.forEach(function(t){t.classList.remove(zt),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);var a="scroll"+(s[0].toUpperCase()+s.slice(1)),c=h(this._element);G.one(this._element,l,function(){e._element.classList.remove(qt),e._element.classList.add(Xt),e._element.classList.add(Gt),e._element.style[s]="",e.setTransitioning(!1),G.trigger(e._element,Yt.SHOWN)}),_(this._element,c),this._element.style[s]=this._element[a]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains(Gt)&&!G.trigger(this._element,Yt.HIDE).defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",E(this._element),this._element.classList.add(qt),this._element.classList.remove(Xt),this._element.classList.remove(Gt);var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],r=f(o);if(null!==r)X.findOne(r).classList.contains(Gt)||(o.classList.add(zt),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var s=h(this._element);G.one(this._element,l,function(){t.setTransitioning(!1),t._element.classList.remove(qt),t._element.classList.add(Xt),G.trigger(t._element,Yt.HIDDEN)}),_(this._element,s)}},e.setTransitioning=function(t){this._isTransitioning=t},e.dispose=function(){D.removeData(this._element,Vt),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(t){return(t=o({},Ft,t)).toggle=Boolean(t.toggle),p(Kt,t,Qt),t},e._getDimension=function(){return this._element.classList.contains(Zt)?Zt:$t},e._getParent=function(){var e=this,n=this._config.parent;g(n)?"undefined"==typeof n.jquery&&"undefined"==typeof n[0]||(n=n[0]):n=X.findOne(n);var i='[data-toggle="collapse"][data-parent="'+n+'"]';return m(X.find(i,n)).forEach(function(n){e._addAriaAndCollapsedClass(t._getTargetFromElement(n),[n])}),n},e._addAriaAndCollapsedClass=function(t,e){if(t){var n=t.classList.contains(Gt);e.length&&e.forEach(function(t){n?t.classList.remove(zt):t.classList.add(zt),t.setAttribute("aria-expanded",n)})}},t._getTargetFromElement=function(t){var e=f(t);return e?X.findOne(e):null},t._collapseInterface=function(e,n){var i=D.getData(e,Vt),r=o({},Ft,vt.getDataAttributes(e),"object"==typeof n&&n?n:{});if(!i&&r.toggle&&/show|hide/.test(n)&&(r.toggle=!1),i||(i=new t(e,r)),"string"==typeof n){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},t._jQueryInterface=function(e){return this.each(function(){t._collapseInterface(this,e)})},t._getInstance=function(t){return D.getData(t,Vt)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ft}}]),t}();if(G.on(document,Yt.CLICK_DATA_API,Jt.DATA_TOGGLE,function(t){"A"===t.target.tagName&&t.preventDefault();var e=vt.getDataAttributes(this),n=f(this);m(X.find(n)).forEach(function(t){var n,i=D.getData(t,Vt);i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,te._collapseInterface(t,n)})}),"undefined"!=typeof c){var ee=c.fn[Kt];c.fn[Kt]=te._jQueryInterface,c.fn[Kt].Constructor=te,c.fn[Kt].noConflict=function(){return c.fn[Kt]=ee,te._jQueryInterface}}var ne="dropdown",ie="bs.dropdown",oe="."+ie,re=new RegExp("38|40|27"),se={HIDE:"hide"+oe,HIDDEN:"hidden"+oe,SHOW:"show"+oe,SHOWN:"shown"+oe,CLICK:"click"+oe,CLICK_DATA_API:"click"+oe+".data-api",KEYDOWN_DATA_API:"keydown"+oe+".data-api",KEYUP_DATA_API:"keyup"+oe+".data-api"},ae="disabled",le="show",ce="dropup",ue="dropright",fe="dropleft",he="dropdown-menu-right",de="position-static",ge='[data-toggle="dropdown"]',_e=".dropdown form",pe=".dropdown-menu",me=".navbar-nav",ve=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",ye="top-start",Ee="top-end",be="bottom-start",De="bottom-end",Te="right-start",Ie="left-start",Ae={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Se={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},we=function(){function e(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners(),D.setData(t,ie,this)}var i=e.prototype;return i.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains(ae)){var n=e._getParentFromElement(this._element),i=this._menu.classList.contains(le);if(e._clearMenus(),!i){var o={relatedTarget:this._element};if(!G.trigger(n,se.SHOW,o).defaultPrevented){if(!this._inNavbar){if("undefined"==typeof t)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var r=this._element;"parent"===this._config.reference?r=n:g(this._config.reference)&&(r=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(r=this._config.reference[0])),"scrollParent"!==this._config.boundary&&n.classList.add(de),this._popper=new t(r,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&!m(X.closest(n,me)).length&&m(document.body.children).forEach(function(t){return G.on(t,"mouseover",null,function(){})}),this._element.focus(),this._element.setAttribute("aria-expanded",!0),vt.toggleClass(this._menu,le),vt.toggleClass(n,le),G.trigger(n,se.SHOWN,o)}}}},i.show=function(){if(!(this._element.disabled||this._element.classList.contains(ae)||this._menu.classList.contains(le))){var t=e._getParentFromElement(this._element),n={relatedTarget:this._element};G.trigger(t,se.SHOW,n).defaultPrevented||(vt.toggleClass(this._menu,le),vt.toggleClass(t,le),G.trigger(t,se.SHOWN,n))}},i.hide=function(){if(!this._element.disabled&&!this._element.classList.contains(ae)&&this._menu.classList.contains(le)){var t=e._getParentFromElement(this._element),n={relatedTarget:this._element};G.trigger(t,se.HIDE,n).defaultPrevented||(vt.toggleClass(this._menu,le),vt.toggleClass(t,le),G.trigger(t,se.HIDDEN,n))}},i.dispose=function(){D.removeData(this._element,ie),G.off(this._element,oe),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},i.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},i._addEventListeners=function(){var t=this;G.on(this._element,se.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},i._getConfig=function(t){return t=o({},this.constructor.Default,vt.getDataAttributes(this._element),t),p(ne,t,this.constructor.DefaultType),t},i._getMenuElement=function(){if(!this._menu){var t=e._getParentFromElement(this._element);t&&(this._menu=X.findOne(pe,t))}return this._menu},i._getPlacement=function(){var t=this._element.parentNode,e=be;return t.classList.contains(ce)?(e=ye,this._menu.classList.contains(he)&&(e=Ee)):t.classList.contains(ue)?e=Te:t.classList.contains(fe)?e=Ie:this._menu.classList.contains(he)&&(e=De),e},i._detectNavbar=function(){return Boolean(X.closest(this._element,".navbar"))},i._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=o({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},i._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),t},e._dropdownInterface=function(t,n){var i=D.getData(t,ie);if(i||(i=new e(t,"object"==typeof n?n:null)),"string"==typeof n){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},e._jQueryInterface=function(t){return this.each(function(){e._dropdownInterface(this,t)})},e._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var n=m(X.find(ge)),i=0,o=n.length;i<o;i++){var r=e._getParentFromElement(n[i]),s=D.getData(n[i],ie),a={relatedTarget:n[i]};if(t&&"click"===t.type&&(a.clickEvent=t),s){var l=s._menu;if(r.classList.contains(le))if(!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&r.contains(t.target)))G.trigger(r,se.HIDE,a).defaultPrevented||("ontouchstart"in document.documentElement&&m(document.body.children).forEach(function(t){return G.off(t,"mouseover",null,function(){})}),n[i].setAttribute("aria-expanded","false"),l.classList.remove(le),r.classList.remove(le),G.trigger(r,se.HIDDEN,a))}}},e._getParentFromElement=function(t){var e,n=f(t);return n&&(e=X.findOne(n)),e||t.parentNode},e._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||X.closest(t.target,pe))):re.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!this.classList.contains(ae))){var n=e._getParentFromElement(this),i=n.classList.contains(le);if(!i||i&&(27===t.which||32===t.which))return 27===t.which&&X.findOne(ge,n).focus(),void e._clearMenus();var o=m(X.find(ve,n));if(o.length){var r=o.indexOf(t.target);38===t.which&&r>0&&r--,40===t.which&&r<o.length-1&&r++,r<0&&(r=0),o[r].focus()}}},e._getInstance=function(t){return D.getData(t,ie)},n(e,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ae}},{key:"DefaultType",get:function(){return Se}}]),e}();if(G.on(document,se.KEYDOWN_DATA_API,ge,we._dataApiKeydownHandler),G.on(document,se.KEYDOWN_DATA_API,pe,we._dataApiKeydownHandler),G.on(document,se.CLICK_DATA_API,we._clearMenus),G.on(document,se.KEYUP_DATA_API,we._clearMenus),G.on(document,se.CLICK_DATA_API,ge,function(t){t.preventDefault(),t.stopPropagation(),we._dropdownInterface(this,"toggle")}),G.on(document,se.CLICK_DATA_API,_e,function(t){return t.stopPropagation()}),"undefined"!=typeof c){var Le=c.fn[ne];c.fn[ne]=we._jQueryInterface,c.fn[ne].Constructor=we,c.fn[ne].noConflict=function(){return c.fn[ne]=Le,we._jQueryInterface}}var Ce="bs.modal",Oe="."+Ce,Ne={backdrop:!0,keyboard:!0,focus:!0,show:!0},ke={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Pe={HIDE:"hide"+Oe,HIDDEN:"hidden"+Oe,SHOW:"show"+Oe,SHOWN:"shown"+Oe,FOCUSIN:"focusin"+Oe,RESIZE:"resize"+Oe,CLICK_DISMISS:"click.dismiss"+Oe,KEYDOWN_DISMISS:"keydown.dismiss"+Oe,MOUSEUP_DISMISS:"mouseup.dismiss"+Oe,MOUSEDOWN_DISMISS:"mousedown.dismiss"+Oe,CLICK_DATA_API:"click"+Oe+".data-api"},He="modal-dialog-scrollable",Me="modal-scrollbar-measure",je="modal-backdrop",Re="modal-open",We="fade",xe="show",Ue={DIALOG:".modal-dialog",MODAL_BODY:".modal-body",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top"},Ke=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=X.findOne(Ue.DIALOG,t),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,D.setData(t,Ce,this)}var e=t.prototype;return e.toggle=function(t){return this._isShown?this.hide():this.show(t)},e.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){this._element.classList.contains(We)&&(this._isTransitioning=!0);var n=G.trigger(this._element,Pe.SHOW,{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),G.on(this._element,Pe.CLICK_DISMISS,Ue.DATA_DISMISS,function(t){return e.hide(t)}),G.on(this._dialog,Pe.MOUSEDOWN_DISMISS,function(){G.one(e._element,Pe.MOUSEUP_DISMISS,function(t){t.target===e._element&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},e.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=G.trigger(this._element,Pe.HIDE);if(this._isShown&&!n.defaultPrevented){this._isShown=!1;var i=this._element.classList.contains(We);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),G.off(document,Pe.FOCUSIN),this._element.classList.remove(xe),G.off(this._element,Pe.CLICK_DISMISS),G.off(this._dialog,Pe.MOUSEDOWN_DISMISS),i){var o=h(this._element);G.one(this._element,l,function(t){return e._hideModal(t)}),_(this._element,o)}else this._hideModal()}}},e.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return G.off(t,Oe)}),G.off(document,Pe.FOCUSIN),D.removeData(this._element,Ce),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},e.handleUpdate=function(){this._adjustDialog()},e._getConfig=function(t){return t=o({},Ne,t),p("modal",t,ke),t},e._showElement=function(t){var e=this,n=this._element.classList.contains(We);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._dialog.classList.contains(He)?X.findOne(Ue.MODAL_BODY,this._dialog).scrollTop=0:this._element.scrollTop=0,n&&E(this._element),this._element.classList.add(xe),this._config.focus&&this._enforceFocus();var i=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,G.trigger(e._element,Pe.SHOWN,{relatedTarget:t})};if(n){var o=h(this._dialog);G.one(this._dialog,l,i),_(this._dialog,o)}else i()},e._enforceFocus=function(){var t=this;G.off(document,Pe.FOCUSIN),G.on(document,Pe.FOCUSIN,function(e){document===e.target||t._element===e.target||t._element.contains(e.target)||t._element.focus()})},e._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?G.on(this._element,Pe.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):this._isShown||G.off(this._element,Pe.KEYDOWN_DISMISS)},e._setResizeEvent=function(){var t=this;this._isShown?G.on(window,Pe.RESIZE,function(e){return t.handleUpdate(e)}):G.off(window,Pe.RESIZE)},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){document.body.classList.remove(Re),t._resetAdjustments(),t._resetScrollbar(),G.trigger(t._element,Pe.HIDDEN)})},e._removeBackdrop=function(){this._backdrop&&(this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null)},e._showBackdrop=function(t){var e=this,n=this._element.classList.contains(We)?We:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=je,n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),G.on(this._element,Pe.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&E(this._backdrop),this._backdrop.classList.add(xe),!t)return;if(!n)return void t();var i=h(this._backdrop);G.one(this._backdrop,l,t),_(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove(xe);var o=function(){e._removeBackdrop(),t&&t()};if(this._element.classList.contains(We)){var r=h(this._backdrop);G.one(this._backdrop,l,o),_(this._backdrop,r)}else o()}else t&&t()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){m(X.find(Ue.FIXED_CONTENT)).forEach(function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];vt.setDataAttribute(e,"padding-right",n),e.style.paddingRight=parseFloat(i)+t._scrollbarWidth+"px"}),m(X.find(Ue.STICKY_CONTENT)).forEach(function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];vt.setDataAttribute(e,"margin-right",n),e.style.marginRight=parseFloat(i)-t._scrollbarWidth+"px"});var e=document.body.style.paddingRight,n=window.getComputedStyle(document.body)["padding-right"];vt.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add(Re)},e._resetScrollbar=function(){m(X.find(Ue.FIXED_CONTENT)).forEach(function(t){var e=vt.getDataAttribute(t,"padding-right");"undefined"!=typeof e&&(vt.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)}),m(X.find(""+Ue.STICKY_CONTENT)).forEach(function(t){var e=vt.getDataAttribute(t,"margin-right");"undefined"!=typeof e&&(vt.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)});var t=vt.getDataAttribute(document.body,"padding-right");"undefined"==typeof t?document.body.style.paddingRight="":(vt.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},e._getScrollbarWidth=function(){var t=document.createElement("div");t.className=Me,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t._jQueryInterface=function(e,n){return this.each(function(){var i=D.getData(this,Ce),r=o({},Ne,vt.getDataAttributes(this),"object"==typeof e&&e?e:{});if(i||(i=new t(this,r)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e](n)}else r.show&&i.show(n)})},t._getInstance=function(t){return D.getData(t,Ce)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ne}}]),t}();if(G.on(document,Pe.CLICK_DATA_API,Ue.DATA_TOGGLE,function(t){var e,n=this,i=f(this);i&&(e=X.findOne(i));var r=D.getData(e,Ce)?"toggle":o({},vt.getDataAttributes(e),vt.getDataAttributes(this));"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),G.one(e,Pe.SHOW,function(t){t.defaultPrevented||G.one(e,Pe.HIDDEN,function(){v(n)&&n.focus()})});var s=D.getData(e,Ce);s||(s=new Ke(e,r)),s.show(this)}),"undefined"!=typeof c){var Ve=c.fn.modal;c.fn.modal=Ke._jQueryInterface,c.fn.modal.Constructor=Ke,c.fn.modal.noConflict=function(){return c.fn.modal=Ve,Ke._jQueryInterface}}var Be=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Fe=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,Qe=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,Ye=function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Be.indexOf(n)||Boolean(t.nodeValue.match(Fe)||t.nodeValue.match(Qe));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1},Ge={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function Xe(t,e,n){if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),r=m(i.body.querySelectorAll("*")),s=function(t,n){var i=r[t],s=i.nodeName.toLowerCase();if(-1===o.indexOf(s))return i.parentNode.removeChild(i),"continue";var a=m(i.attributes),l=[].concat(e["*"]||[],e[s]||[]);a.forEach(function(t){Ye(t,l)||i.removeAttribute(t.nodeName)})},a=0,l=r.length;a<l;a++)s(a);return i.body.innerHTML}var qe="tooltip",ze=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Ze=["sanitize","whiteList","sanitizeFn"],$e={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},Je={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},tn={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Ge},en="show",nn="out",on={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},rn="fade",sn="show",an=".tooltip-inner",ln="hover",cn="focus",un="click",fn="manual",hn=function(){function e(e,n){if("undefined"==typeof t)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=e,this.config=this._getConfig(n),this.tip=null,this._setListeners(),D.setData(e,this.constructor.DATA_KEY,this)}var i=e.prototype;return i.enable=function(){this._isEnabled=!0},i.disable=function(){this._isEnabled=!1},i.toggleEnabled=function(){this._isEnabled=!this._isEnabled},i.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=D.getData(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),D.setData(t.delegateTarget,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(sn))return void this._leave(null,this);this._enter(null,this)}},i.dispose=function(){clearTimeout(this._timeout),D.removeData(this.element,this.constructor.DATA_KEY),G.off(this.element,this.constructor.EVENT_KEY),G.off(X.closest(this.element,".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},i.show=function(){var e=this;if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var n=G.trigger(this.element,this.constructor.Event.SHOW),i=function t(e){if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){var n=e.getRootNode();return n instanceof ShadowRoot?n:null}return e instanceof ShadowRoot?e:e.parentNode?t(e.parentNode):null}(this.element),o=null===i?this.element.ownerDocument.documentElement.contains(this.element):i.contains(this.element);if(n.defaultPrevented||!o)return;var r=this.getTipElement(),s=u(this.constructor.NAME);r.setAttribute("id",s),this.element.setAttribute("aria-describedby",s),this.setContent(),this.config.animation&&r.classList.add(rn);var a="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,c=this._getAttachment(a);this.addAttachmentClass(c);var f=this._getContainer();D.setData(r,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||f.appendChild(r),G.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new t(this.element,r,{placement:c,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:"."+this.constructor.NAME+"-arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),r.classList.add(sn),"ontouchstart"in document.documentElement&&m(document.body.children).forEach(function(t){G.on(t,"mouseover",function(){})});var d=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,G.trigger(e.element,e.constructor.Event.SHOWN),t===nn&&e._leave(null,e)};if(this.tip.classList.contains(rn)){var g=h(this.tip);G.one(this.tip,l,d),_(this.tip,g)}else d()}},i.hide=function(t){var e=this,n=this.getTipElement(),i=function(){e._hoverState!==en&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),G.trigger(e.element,e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(!G.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){if(n.classList.remove(sn),"ontouchstart"in document.documentElement&&m(document.body.children).forEach(function(t){return G.off(t,"mouseover",y)}),this._activeTrigger[un]=!1,this._activeTrigger[cn]=!1,this._activeTrigger[ln]=!1,this.tip.classList.contains(rn)){var o=h(n);G.one(n,l,i),_(n,o)}else i();this._hoverState=""}},i.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},i.isWithContent=function(){return Boolean(this.getTitle())},i.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+t)},i.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},i.setContent=function(){var t=this.getTipElement();this.setElementContent(X.findOne(an,t),this.getTitle()),t.classList.remove(rn),t.classList.remove(sn)},i.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&(e.nodeType||e.jquery)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.innerText=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=Xe(e,this.config.whiteList,this.config.sanitizeFn)),t.innerHTML=e):t.innerText=e)},i.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},i._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=o({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},i._getContainer=function(){return!1===this.config.container?document.body:g(this.config.container)?this.config.container:X.findOne(this.config.container)},i._getAttachment=function(t){return Je[t.toUpperCase()]},i._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(e){if("click"===e)G.on(t.element,t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(e!==fn){var n=e===ln?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i=e===ln?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;G.on(t.element,n,t.config.selector,function(e){return t._enter(e)}),G.on(t.element,i,t.config.selector,function(e){return t._leave(e)})}}),this._hideModalHandler=function(){t.element&&t.hide()},G.on(X.closest(this.element,".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=o({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},i._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},i._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||D.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),D.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?cn:ln]=!0),e.getTipElement().classList.contains(sn)||e._hoverState===en?e._hoverState=en:(clearTimeout(e._timeout),e._hoverState=en,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===en&&e.show()},e.config.delay.show):e.show())},i._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||D.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),D.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?cn:ln]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=nn,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===nn&&e.hide()},e.config.delay.hide):e.hide())},i._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},i._getConfig=function(t){var e=vt.getDataAttributes(this.element);return Object.keys(e).forEach(function(t){-1!==Ze.indexOf(t)&&delete e[t]}),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=o({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),p(qe,t,this.constructor.DefaultType),t.sanitize&&(t.template=Xe(t.template,t.whiteList,t.sanitizeFn)),t},i._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},i._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(ze);null!==e&&e.length&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},i._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},i._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(t.classList.remove(rn),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},e._jQueryInterface=function(t){return this.each(function(){var n=D.getData(this,"bs.tooltip"),i="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new e(this,i)),"string"==typeof t)){if("undefined"==typeof n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},e._getInstance=function(t){return D.getData(t,"bs.tooltip")},n(e,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return tn}},{key:"NAME",get:function(){return qe}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return on}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return $e}}]),e}();if("undefined"!=typeof c){var dn=c.fn.tooltip;c.fn.tooltip=hn._jQueryInterface,c.fn.tooltip.Constructor=hn,c.fn.tooltip.noConflict=function(){return c.fn.tooltip=dn,hn._jQueryInterface}}var gn="popover",_n=new RegExp("(^|\\s)bs-popover\\S+","g"),pn=o({},hn.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),mn=o({},hn.DefaultType,{content:"(string|element|function)"}),vn="fade",yn="show",En=".popover-header",bn=".popover-body",Dn={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},Tn=function(t){var e,i;function o(){return t.apply(this,arguments)||this}i=t,(e=o).prototype=Object.create(i.prototype),e.prototype.constructor=e,e.__proto__=i;var r=o.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},r.setContent=function(){var t=this.getTipElement();this.setElementContent(X.findOne(En,t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(X.findOne(bn,t),e),t.classList.remove(vn),t.classList.remove(yn)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(_n);null!==e&&e.length>0&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},o._jQueryInterface=function(t){return this.each(function(){var e=D.getData(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),D.setData(this,"bs.popover",e)),"string"==typeof t)){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})},o._getInstance=function(t){return D.getData(t,"bs.popover")},n(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return pn}},{key:"NAME",get:function(){return gn}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return Dn}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return mn}}]),o}(hn);if("undefined"!=typeof c){var In=c.fn.popover;c.fn.popover=Tn._jQueryInterface,c.fn.popover.Constructor=Tn,c.fn.popover.noConflict=function(){return c.fn.popover=In,Tn._jQueryInterface}}var An="scrollspy",Sn="bs.scrollspy",wn="."+Sn,Ln={offset:10,method:"auto",target:""},Cn={offset:"number",method:"string",target:"(string|element)"},On={ACTIVATE:"activate"+wn,SCROLL:"scroll"+wn,LOAD_DATA_API:"load"+wn+".data-api"},Nn={DROPDOWN_ITEM:"dropdown-item",ACTIVE:"active"},kn={DATA_SPY:'[data-spy="scroll"]',NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_TOGGLE:".dropdown-toggle"},Pn="offset",Hn="position",Mn=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+kn.NAV_LINKS+","+this._config.target+" "+kn.LIST_ITEMS+","+this._config.target+" ."+Nn.DROPDOWN_ITEM,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,G.on(this._scrollElement,On.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process(),D.setData(t,Sn,this)}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?Pn:Hn,n="auto"===this._config.method?e:this._config.method,i=n===Hn?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),m(X.find(this._selector)).map(function(t){var e,o=f(t);if(o&&(e=X.findOne(o)),e){var r=e.getBoundingClientRect();if(r.width||r.height)return[vt[n](e).top+i,o]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},e.dispose=function(){D.removeData(this._element,Sn),G.off(this._scrollElement,wn),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=o({},Ln,"object"==typeof t&&t?t:{})).target){var e=t.target.id;e||(e=u(An),t.target.id=e),t.target="#"+e}return p(An,t,Cn),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},e._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map(function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'}),n=X.findOne(e.join(","));n.classList.contains(Nn.DROPDOWN_ITEM)?(X.findOne(kn.DROPDOWN_TOGGLE,X.closest(n,kn.DROPDOWN)).classList.add(Nn.ACTIVE),n.classList.add(Nn.ACTIVE)):(n.classList.add(Nn.ACTIVE),X.parents(n,kn.NAV_LIST_GROUP).forEach(function(t){X.prev(t,kn.NAV_LINKS+", "+kn.LIST_ITEMS).forEach(function(t){return t.classList.add(Nn.ACTIVE)}),X.prev(t,kn.NAV_ITEMS).forEach(function(t){X.children(t,kn.NAV_LINKS).forEach(function(t){return t.classList.add(Nn.ACTIVE)})})})),G.trigger(this._scrollElement,On.ACTIVATE,{relatedTarget:t})},e._clear=function(){m(X.find(this._selector)).filter(function(t){return t.classList.contains(Nn.ACTIVE)}).forEach(function(t){return t.classList.remove(Nn.ACTIVE)})},t._jQueryInterface=function(e){return this.each(function(){var n=D.getData(this,Sn);if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return D.getData(t,Sn)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ln}}]),t}();if(G.on(window,On.LOAD_DATA_API,function(){m(X.find(kn.DATA_SPY)).forEach(function(t){return new Mn(t,vt.getDataAttributes(t))})}),"undefined"!=typeof c){var jn=c.fn[An];c.fn[An]=Mn._jQueryInterface,c.fn[An].Constructor=Mn,c.fn[An].noConflict=function(){return c.fn[An]=jn,Mn._jQueryInterface}}var Rn="bs.tab",Wn="."+Rn,xn={HIDE:"hide"+Wn,HIDDEN:"hidden"+Wn,SHOW:"show"+Wn,SHOWN:"shown"+Wn,CLICK_DATA_API:"click"+Wn+".data-api"},Un="dropdown-menu",Kn="active",Vn="disabled",Bn="fade",Fn="show",Qn=".dropdown",Yn=".nav, .list-group",Gn=".active",Xn=":scope > li > .active",qn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',zn=".dropdown-toggle",Zn=":scope > .dropdown-menu .active",$n=function(){function t(t){this._element=t,D.setData(this._element,Rn,this)}var e=t.prototype;return e.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(Kn)||this._element.classList.contains(Vn))){var e,n,i=X.closest(this._element,Yn),o=f(this._element);if(i){var r="UL"===i.nodeName||"OL"===i.nodeName?Xn:Gn;n=(n=m(X.find(r,i)))[n.length-1]}var s=null;if(n&&(s=G.trigger(n,xn.HIDE,{relatedTarget:this._element})),!(G.trigger(this._element,xn.SHOW,{relatedTarget:n}).defaultPrevented||null!==s&&s.defaultPrevented)){o&&(e=X.findOne(o)),this._activate(this._element,i);var a=function(){G.trigger(n,xn.HIDDEN,{relatedTarget:t._element}),G.trigger(t._element,xn.SHOWN,{relatedTarget:n})};e?this._activate(e,e.parentNode,a):a()}}},e.dispose=function(){D.removeData(this._element,Rn),this._element=null},e._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?X.children(e,Gn):X.find(Xn,e))[0],r=n&&o&&o.classList.contains(Bn),s=function(){return i._transitionComplete(t,o,n)};if(o&&r){var a=h(o);o.classList.remove(Fn),G.one(o,l,s),_(o,a)}else s()},e._transitionComplete=function(t,e,n){if(e){e.classList.remove(Kn);var i=X.findOne(Zn,e.parentNode);i&&i.classList.remove(Kn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add(Kn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),E(t),t.classList.contains(Bn)&&t.classList.add(Fn),t.parentNode&&t.parentNode.classList.contains(Un))&&(X.closest(t,Qn)&&m(X.find(zn)).forEach(function(t){return t.classList.add(Kn)}),t.setAttribute("aria-expanded",!0));n&&n()},t._jQueryInterface=function(e){return this.each(function(){var n=D.getData(this,Rn)||new t(this);if("string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return D.getData(t,Rn)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(G.on(document,xn.CLICK_DATA_API,qn,function(t){t.preventDefault(),(D.getData(this,Rn)||new $n(this)).show()}),"undefined"!=typeof c){var Jn=c.fn.tab;c.fn.tab=$n._jQueryInterface,c.fn.tab.Constructor=$n,c.fn.tab.noConflict=function(){return c.fn.tab=Jn,$n._jQueryInterface}}var ti="bs.toast",ei="."+ti,ni={CLICK_DISMISS:"click.dismiss"+ei,HIDE:"hide"+ei,HIDDEN:"hidden"+ei,SHOW:"show"+ei,SHOWN:"shown"+ei},ii="fade",oi="hide",ri="show",si="showing",ai={animation:"boolean",autohide:"boolean",delay:"number"},li={animation:!0,autohide:!0,delay:500},ci='[data-dismiss="toast"]',ui=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),D.setData(t,ti,this)}var e=t.prototype;return e.show=function(){var t=this;if(!G.trigger(this._element,ni.SHOW).defaultPrevented){this._config.animation&&this._element.classList.add(ii);var e=function(){t._element.classList.remove(si),t._element.classList.add(ri),G.trigger(t._element,ni.SHOWN),t._config.autohide&&(t._timeout=setTimeout(function(){t.hide()},t._config.delay))};if(this._element.classList.remove(oi),this._element.classList.add(si),this._config.animation){var n=h(this._element);G.one(this._element,l,e),_(this._element,n)}else e()}},e.hide=function(){var t=this;if(this._element.classList.contains(ri)&&!G.trigger(this._element,ni.HIDE).defaultPrevented){var e=function(){t._element.classList.add(oi),G.trigger(t._element,ni.HIDDEN)};if(this._element.classList.remove(ri),this._config.animation){var n=h(this._element);G.one(this._element,l,e),_(this._element,n)}else e()}},e.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(ri)&&this._element.classList.remove(ri),G.off(this._element,ni.CLICK_DISMISS),D.removeData(this._element,ti),this._element=null,this._config=null},e._getConfig=function(t){return t=o({},li,vt.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),p("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;G.on(this._element,ni.CLICK_DISMISS,ci,function(){return t.hide()})},t._jQueryInterface=function(e){return this.each(function(){var n=D.getData(this,ti);if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e](this)}})},t._getInstance=function(t){return D.getData(t,ti)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return ai}},{key:"Default",get:function(){return li}}]),t}();if("undefined"!=typeof c){var fi=c.fn.toast;c.fn.toast=ui._jQueryInterface,c.fn.toast.Constructor=ui,c.fn.toast.noConflict=function(){return c.fn.toast=fi,ui._jQueryInterface}}return{Alert:et,Button:gt,Carousel:xt,Collapse:te,Dropdown:we,Modal:Ke,Popover:Tn,ScrollSpy:Mn,Tab:$n,Toast:ui,Tooltip:hn}}); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("popper.js")):"function"==typeof define&&define.amd?define(["popper.js"],e):(t=t||self).bootstrap=e(t.Popper)}(this,function(t){"use strict";function e(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function n(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,i)}return n}function r(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?o(n,!0).forEach(function(e){i(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):o(n).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}t=t&&t.hasOwnProperty("default")?t.default:t;var s,a,l,c="transitionend",u=window.jQuery,f=function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},h=function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},d=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,o=parseFloat(n),r=parseFloat(i);return o||r?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},g=function(t){var e=document.createEvent("HTMLEvents");e.initEvent(c,!0,!0),t.dispatchEvent(e)},_=function(t){return(t[0]||t).nodeType},p=function(t,e){var n=!1,i=e+5;t.addEventListener(c,function e(){n=!0,t.removeEventListener(c,e)}),setTimeout(function(){n||g(t)},i)},m=function(t,e,n){Object.keys(n).forEach(function(i){var o,r=n[i],s=e[i],a=s&&_(s)?"element":(o=s,{}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+r+'".')})},v=function(t){return t?[].slice.call(t):[]},y=function(t){return!!t&&(!!(t.style&&t.parentNode&&t.parentNode.style)&&("none"!==t.style.display&&"none"!==t.parentNode.style.display&&"hidden"!==t.style.visibility))},E=function(){return function(){}},b=function(t){return t.offsetHeight},D=(s={},a=1,{set:function(t,e,n){"undefined"==typeof t.key&&(t.key={key:e,id:a},a++),s[t.key.id]=n},get:function(t,e){if(!t||"undefined"==typeof t.key)return null;var n=t.key;return n.key===e?s[n.id]:null},delete:function(t,e){if("undefined"!=typeof t.key){var n=t.key;n.key===e&&(delete s[n.id],delete t.key)}}}),T={setData:function(t,e,n){D.set(t,e,n)},getData:function(t,e){return D.get(t,e)},removeData:function(t,e){D.delete(t,e)}},I=Element.prototype,A=I.matches,S=I.closest,w=Element.prototype.querySelectorAll,O=Element.prototype.querySelector,L=function(t,e){return new CustomEvent(t,e)};if("function"!=typeof window.CustomEvent&&(L=function(t,e){e=e||{bubbles:!1,cancelable:!1,detail:null};var n=document.createEvent("CustomEvent");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n}),!((l=document.createEvent("CustomEvent")).initEvent("Bootstrap",!0,!0),l.preventDefault(),l.defaultPrevented)){var C=Event.prototype.preventDefault;Event.prototype.preventDefault=function(){this.cancelable&&(C.call(this),Object.defineProperty(this,"defaultPrevented",{get:function(){return!0},configurable:!0}))}}var N=function(){var t=L("Bootstrap",{cancelable:!0}),e=document.createElement("div");return e.addEventListener("Bootstrap",function(){return null}),t.preventDefault(),e.dispatchEvent(t),t.defaultPrevented}();A||(A=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector),S||(S=function(t){var e=this;do{if(A.call(e,t))return e;e=e.parentElement||e.parentNode}while(null!==e&&1===e.nodeType);return null});var k=/:scope\b/;(function(){var t=document.createElement("div");try{t.querySelectorAll(":scope *")}catch(t){return!1}return!0})()||(w=function(t){if(!k.test(t))return this.querySelectorAll(t);var e=Boolean(this.id);e||(this.id=f("scope"));var n=null;try{t=t.replace(k,"#"+this.id),n=this.querySelectorAll(t)}finally{e||this.removeAttribute("id")}return n},O=function(t){if(!k.test(t))return this.querySelector(t);var e=w.call(this,t);return"undefined"!=typeof e[0]?e[0]:null});var P=/[^.]*(?=\..*)\.|.*/,H=/\..*/,j=/^key/,M=/::\d+$/,R={},W=1,x={mouseenter:"mouseover",mouseleave:"mouseout"},U=["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"];function K(t,e){return e&&e+"::"+W++||t.uidEvent||W++}function V(t){var e=K(t);return t.uidEvent=e,R[e]=R[e]||{},R[e]}function B(t,e){null===t.which&&j.test(t.type)&&(t.which=null===t.charCode?t.keyCode:t.charCode),t.delegateTarget=e}function F(t,e,n){void 0===n&&(n=null);for(var i=Object.keys(t),o=0,r=i.length;o<r;o++){var s=t[i[o]];if(s.originalHandler===e&&s.delegationSelector===n)return s}return null}function Q(t,e,n){var i="string"==typeof e,o=i?n:e,r=t.replace(H,""),s=x[r];return s&&(r=s),U.indexOf(r)>-1||(r=t),[i,o,r]}function Y(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var r=Q(e,n,i),s=r[0],a=r[1],l=r[2],c=V(t),u=c[l]||(c[l]={}),f=F(u,a,s?n:null);if(f)f.oneOff=f.oneOff&&o;else{var h=K(a,e.replace(P,"")),d=s?function(t,e,n){return function i(o){for(var r=t.querySelectorAll(e),s=o.target;s&&s!==this;s=s.parentNode)for(var a=r.length;a--;)if(r[a]===s)return B(o,s),i.oneOff&&X.off(t,o.type,n),n.apply(s,[o]);return null}}(t,n,i):function(t,e){return function n(i){return B(i,t),n.oneOff&&X.off(t,i.type,e),e.apply(t,[i])}}(t,n);d.delegationSelector=s?n:null,d.originalHandler=a,d.oneOff=o,d.uidEvent=h,u[h]=d,t.addEventListener(l,d,s)}}}function G(t,e,n,i,o){var r=F(e[n],i,o);r&&(t.removeEventListener(n,r,Boolean(o)),delete e[n][r.uidEvent])}var X={on:function(t,e,n,i){Y(t,e,n,i,!1)},one:function(t,e,n,i){Y(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=Q(e,n,i),r=o[0],s=o[1],a=o[2],l=a!==e,c=V(t),u="."===e.charAt(0);if("undefined"==typeof s){u&&Object.keys(c).forEach(function(n){!function(t,e,n,i){var o=e[n]||{};Object.keys(o).forEach(function(r){if(r.indexOf(i)>-1){var s=o[r];G(t,e,n,s.originalHandler,s.delegationSelector)}})}(t,c,n,e.substr(1))});var f=c[a]||{};Object.keys(f).forEach(function(n){var i=n.replace(M,"");if(!l||e.indexOf(i)>-1){var o=f[n];G(t,c,a,o.originalHandler,o.delegationSelector)}})}else{if(!c||!c[a])return;G(t,c,a,s,r?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=e.replace(H,""),r=e!==o,s=U.indexOf(o)>-1,a=!0,l=!0,c=!1,f=null;return r&&"undefined"!=typeof u&&(i=u.Event(e,n),u(t).trigger(i),a=!i.isPropagationStopped(),l=!i.isImmediatePropagationStopped(),c=i.isDefaultPrevented()),s?(f=document.createEvent("HTMLEvents")).initEvent(o,a,!0):f=L(e,{bubbles:a,cancelable:!0}),"undefined"!=typeof n&&Object.keys(n).forEach(function(t){Object.defineProperty(f,t,{get:function(){return n[t]}})}),c&&(f.preventDefault(),N||Object.defineProperty(f,"defaultPrevented",{get:function(){return!0}})),l&&t.dispatchEvent(f),f.defaultPrevented&&"undefined"!=typeof i&&i.preventDefault(),f}},z={matches:function(t,e){return A.call(t,e)},find:function(t,e){return void 0===e&&(e=document.documentElement),w.call(e,t)},findOne:function(t,e){return void 0===e&&(e=document.documentElement),O.call(e,t)},children:function(t,e){var n=this,i=v(t.children);return i.filter(function(t){return n.matches(t,e)})},parents:function(t,e){for(var n=[],i=t.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.parentNode;return n},closest:function(t,e){return S.call(t,e)},prev:function(t,e){for(var n=[],i=t.previousSibling;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.previousSibling;return n}},q="bs.alert",Z="."+q,$={CLOSE:"close"+Z,CLOSED:"closed"+Z,CLICK_DATA_API:"click"+Z+".data-api"},J="alert",tt="fade",et="show",nt=function(){function t(t){this._element=t,this._element&&T.setData(t,q,this)}var e=t.prototype;return e.close=function(t){var e=this._element;t&&(e=this._getRootElement(t));var n=this._triggerCloseEvent(e);null===n||n.defaultPrevented||this._removeElement(e)},e.dispose=function(){T.removeData(this._element,q),this._element=null},e._getRootElement=function(t){var e=h(t),n=!1;return e&&(n=z.findOne(e)),n||(n=z.closest(t,"."+J)),n},e._triggerCloseEvent=function(t){return X.trigger(t,$.CLOSE)},e._removeElement=function(t){var e=this;if(t.classList.remove(et),t.classList.contains(tt)){var n=d(t);X.one(t,c,function(){return e._destroyElement(t)}),p(t,n)}else this._destroyElement(t)},e._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),X.trigger(t,$.CLOSED)},t._jQueryInterface=function(e){return this.each(function(){var n=T.getData(this,q);n||(n=new t(this)),"close"===e&&n[e](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},t._getInstance=function(t){return T.getData(t,q)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(X.on(document,$.CLICK_DATA_API,'[data-dismiss="alert"]',nt._handleDismiss(new nt)),"undefined"!=typeof u){var it=u.fn.alert;u.fn.alert=nt._jQueryInterface,u.fn.alert.Constructor=nt,u.fn.alert.noConflict=function(){return u.fn.alert=it,nt._jQueryInterface}}var ot="bs.button",rt="."+ot,st="active",at="btn",lt="focus",ct='[data-toggle^="button"]',ut='[data-toggle="buttons"]',ft='input:not([type="hidden"])',ht=".active",dt=".btn",gt={CLICK_DATA_API:"click"+rt+".data-api",FOCUS_DATA_API:"focus"+rt+".data-api",BLUR_DATA_API:"blur"+rt+".data-api"},_t=function(){function t(t){this._element=t,T.setData(t,ot,this)}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=z.closest(this._element,ut);if(n){var i=z.findOne(ft,this._element);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(st))t=!1;else{var o=z.findOne(ht,n);o&&o.classList.remove(st)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(st),X.trigger(i,"change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(st)),t&&this._element.classList.toggle(st)},e.dispose=function(){T.removeData(this._element,ot),this._element=null},t._jQueryInterface=function(e){return this.each(function(){var n=T.getData(this,ot);n||(n=new t(this)),"toggle"===e&&n[e]()})},t._getInstance=function(t){return T.getData(t,ot)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(X.on(document,gt.CLICK_DATA_API,ct,function(t){t.preventDefault();var e=t.target;e.classList.contains(at)||(e=z.closest(e,dt));var n=T.getData(e,ot);n||(n=new _t(e)),n.toggle()}),X.on(document,gt.FOCUS_DATA_API,ct,function(t){var e=z.closest(t.target,dt);e&&e.classList.add(lt)}),X.on(document,gt.BLUR_DATA_API,ct,function(t){var e=z.closest(t.target,dt);e&&e.classList.remove(lt)}),"undefined"!=typeof u){var pt=u.fn.button;u.fn.button=_t._jQueryInterface,u.fn.button.Constructor=_t,u.fn.button.noConflict=function(){return u.fn.button=pt,_t._jQueryInterface}}function mt(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function vt(t){return t.replace(/[A-Z]/g,function(t){return t.toLowerCase()})}var yt={setDataAttribute:function(t,e,n){t.setAttribute("data-"+vt(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+vt(e))},getDataAttributes:function(t){if(!t)return{};var e=r({},t.dataset);return Object.keys(e).forEach(function(t){e[t]=mt(e[t])}),e},getDataAttribute:function(t,e){return mt(t.getAttribute("data-"+vt(e)))},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:function(t){return{top:t.offsetTop,left:t.offsetLeft}},toggleClass:function(t,e){t&&(t.classList.contains(e)?t.classList.remove(e):t.classList.add(e))}},Et="carousel",bt="bs.carousel",Dt="."+bt,Tt={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},It={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},At="next",St="prev",wt="left",Ot="right",Lt={SLIDE:"slide"+Dt,SLID:"slid"+Dt,KEYDOWN:"keydown"+Dt,MOUSEENTER:"mouseenter"+Dt,MOUSELEAVE:"mouseleave"+Dt,TOUCHSTART:"touchstart"+Dt,TOUCHMOVE:"touchmove"+Dt,TOUCHEND:"touchend"+Dt,POINTERDOWN:"pointerdown"+Dt,POINTERUP:"pointerup"+Dt,DRAG_START:"dragstart"+Dt,LOAD_DATA_API:"load"+Dt+".data-api",CLICK_DATA_API:"click"+Dt+".data-api"},Ct="carousel",Nt="active",kt="slide",Pt="carousel-item-right",Ht="carousel-item-left",jt="carousel-item-next",Mt="carousel-item-prev",Rt="pointer-event",Wt={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",ITEM_IMG:".carousel-item img",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},xt={TOUCH:"touch",PEN:"pen"},Ut=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=z.findOne(Wt.INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),T.setData(t,bt,this)}var e=t.prototype;return e.next=function(){this._isSliding||this._slide(At)},e.nextWhenVisible=function(){!document.hidden&&y(this._element)&&this.next()},e.prev=function(){this._isSliding||this._slide(St)},e.pause=function(t){t||(this._isPaused=!0),z.findOne(Wt.NEXT_PREV,this._element)&&(g(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var e=this;this._activeElement=z.findOne(Wt.ACTIVE_ITEM,this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)X.one(this._element,Lt.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=t>n?At:St;this._slide(i,this._items[t])}},e.dispose=function(){X.off(this._element,Dt),T.removeData(this._element,bt),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=r({},Tt,{},t),m(Et,t,It),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;this.touchDeltaX=0,e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&X.on(this._element,Lt.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(X.on(this._element,Lt.MOUSEENTER,function(e){return t.pause(e)}),X.on(this._element,Lt.MOUSELEAVE,function(e){return t.cycle(e)})),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this,e=function(e){t._pointerEvent&&xt[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&xt[e.pointerType.toUpperCase()]&&(t.touchDeltaX=e.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval))};v(z.find(Wt.ITEM_IMG,this._element)).forEach(function(t){X.on(t,Lt.DRAG_START,function(t){return t.preventDefault()})}),this._pointerEvent?(X.on(this._element,Lt.POINTERDOWN,function(t){return e(t)}),X.on(this._element,Lt.POINTERUP,function(t){return n(t)}),this._element.classList.add(Rt)):(X.on(this._element,Lt.TOUCHSTART,function(t){return e(t)}),X.on(this._element,Lt.TOUCHMOVE,function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)}),X.on(this._element,Lt.TOUCHEND,function(t){return n(t)}))},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?v(z.find(Wt.ITEM,t.parentNode)):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n=t===At,i=t===St,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+(t===St?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(z.findOne(Wt.ACTIVE_ITEM,this._element));return X.trigger(this._element,Lt.SLIDE,{relatedTarget:t,direction:e,from:i,to:n})},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=z.find(Wt.ACTIVE,this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove(Nt);var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add(Nt)}},e._slide=function(t,e){var n,i,o,r=this,s=z.findOne(Wt.ACTIVE_ITEM,this._element),a=this._getItemIndex(s),l=e||s&&this._getItemByDirection(t,s),u=this._getItemIndex(l),f=Boolean(this._interval);if(t===At?(n=Ht,i=jt,o=wt):(n=Pt,i=Mt,o=Ot),l&&l.classList.contains(Nt))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).defaultPrevented&&s&&l){if(this._isSliding=!0,f&&this.pause(),this._setActiveIndicatorElement(l),this._element.classList.contains(kt)){l.classList.add(i),b(l),s.classList.add(n),l.classList.add(n);var h=parseInt(l.getAttribute("data-interval"),10);h?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=h):this._config.interval=this._config.defaultInterval||this._config.interval;var g=d(s);X.one(s,c,function(){l.classList.remove(n),l.classList.remove(i),l.classList.add(Nt),s.classList.remove(Nt),s.classList.remove(i),s.classList.remove(n),r._isSliding=!1,setTimeout(function(){X.trigger(r._element,Lt.SLID,{relatedTarget:l,direction:o,from:a,to:u})},0)}),p(s,g)}else s.classList.remove(Nt),l.classList.add(Nt),this._isSliding=!1,X.trigger(this._element,Lt.SLID,{relatedTarget:l,direction:o,from:a,to:u});f&&this.cycle()}},t._carouselInterface=function(e,n){var i=T.getData(e,bt),o=r({},Tt,{},yt.getDataAttributes(e));"object"==typeof n&&(o=r({},o,{},n));var s="string"==typeof n?n:o.slide;if(i||(i=new t(e,o)),"number"==typeof n)i.to(n);else if("string"==typeof s){if("undefined"==typeof i[s])throw new TypeError('No method named "'+s+'"');i[s]()}else o.interval&&o.ride&&(i.pause(),i.cycle())},t._jQueryInterface=function(e){return this.each(function(){t._carouselInterface(this,e)})},t._dataApiClickHandler=function(e){var n=h(this);if(n){var i=z.findOne(n);if(i&&i.classList.contains(Ct)){var o=r({},yt.getDataAttributes(i),{},yt.getDataAttributes(this)),s=this.getAttribute("data-slide-to");s&&(o.interval=!1),t._carouselInterface(i,o),s&&T.getData(i,bt).to(s),e.preventDefault()}}},t._getInstance=function(t){return T.getData(t,bt)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Tt}}]),t}();if(X.on(document,Lt.CLICK_DATA_API,Wt.DATA_SLIDE,Ut._dataApiClickHandler),X.on(window,Lt.LOAD_DATA_API,function(){for(var t=v(z.find(Wt.DATA_RIDE)),e=0,n=t.length;e<n;e++)Ut._carouselInterface(t[e],T.getData(t[e],bt))}),"undefined"!=typeof u){var Kt=u.fn[Et];u.fn[Et]=Ut._jQueryInterface,u.fn[Et].Constructor=Ut,u.fn[Et].noConflict=function(){return u.fn[Et]=Kt,Ut._jQueryInterface}}var Vt="collapse",Bt="bs.collapse",Ft="."+Bt,Qt={toggle:!0,parent:""},Yt={toggle:"boolean",parent:"(string|element)"},Gt={SHOW:"show"+Ft,SHOWN:"shown"+Ft,HIDE:"hide"+Ft,HIDDEN:"hidden"+Ft,CLICK_DATA_API:"click"+Ft+".data-api"},Xt="show",zt="collapse",qt="collapsing",Zt="collapsed",$t="width",Jt="height",te={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},ee=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=v(z.find('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=v(z.find(te.DATA_TOGGLE)),i=0,o=n.length;i<o;i++){var r=n[i],s=h(r),a=v(z.find(s)).filter(function(e){return e===t});null!==s&&a.length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle(),T.setData(t,Bt,this)}var e=t.prototype;return e.toggle=function(){this._element.classList.contains(Xt)?this.hide():this.show()},e.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains(Xt)){var n,i;this._parent&&0===(n=v(z.find(te.ACTIVES,this._parent)).filter(function(t){return"string"==typeof e._config.parent?t.getAttribute("data-parent")===e._config.parent:t.classList.contains(zt)})).length&&(n=null);var o=z.findOne(this._selector);if(n){var r=n.filter(function(t){return o!==t});if((i=r[0]?T.getData(r[0],Bt):null)&&i._isTransitioning)return}if(!X.trigger(this._element,Gt.SHOW).defaultPrevented){n&&n.forEach(function(e){o!==e&&t._collapseInterface(e,"hide"),i||T.setData(e,Bt,null)});var s=this._getDimension();this._element.classList.remove(zt),this._element.classList.add(qt),this._element.style[s]=0,this._triggerArray.length&&this._triggerArray.forEach(function(t){t.classList.remove(Zt),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);var a="scroll"+(s[0].toUpperCase()+s.slice(1)),l=d(this._element);X.one(this._element,c,function(){e._element.classList.remove(qt),e._element.classList.add(zt),e._element.classList.add(Xt),e._element.style[s]="",e.setTransitioning(!1),X.trigger(e._element,Gt.SHOWN)}),p(this._element,l),this._element.style[s]=this._element[a]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains(Xt)&&!X.trigger(this._element,Gt.HIDE).defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",b(this._element),this._element.classList.add(qt),this._element.classList.remove(zt),this._element.classList.remove(Xt);var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],r=h(o);if(null!==r)z.findOne(r).classList.contains(Xt)||(o.classList.add(Zt),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var s=d(this._element);X.one(this._element,c,function(){t.setTransitioning(!1),t._element.classList.remove(qt),t._element.classList.add(zt),X.trigger(t._element,Gt.HIDDEN)}),p(this._element,s)}},e.setTransitioning=function(t){this._isTransitioning=t},e.dispose=function(){T.removeData(this._element,Bt),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(t){return(t=r({},Qt,{},t)).toggle=Boolean(t.toggle),m(Vt,t,Yt),t},e._getDimension=function(){return this._element.classList.contains($t)?$t:Jt},e._getParent=function(){var t=this,e=this._config.parent;_(e)?"undefined"==typeof e.jquery&&"undefined"==typeof e[0]||(e=e[0]):e=z.findOne(e);var n='[data-toggle="collapse"][data-parent="'+e+'"]';return v(z.find(n,e)).forEach(function(e){var n=h(e),i=n?z.findOne(n):null;t._addAriaAndCollapsedClass(i,[e])}),e},e._addAriaAndCollapsedClass=function(t,e){if(t){var n=t.classList.contains(Xt);e.length&&e.forEach(function(t){n?t.classList.remove(Zt):t.classList.add(Zt),t.setAttribute("aria-expanded",n)})}},t._collapseInterface=function(e,n){var i=T.getData(e,Bt),o=r({},Qt,{},yt.getDataAttributes(e),{},"object"==typeof n&&n?n:{});if(!i&&o.toggle&&/show|hide/.test(n)&&(o.toggle=!1),i||(i=new t(e,o)),"string"==typeof n){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},t._jQueryInterface=function(e){return this.each(function(){t._collapseInterface(this,e)})},t._getInstance=function(t){return T.getData(t,Bt)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Qt}}]),t}();if(X.on(document,Gt.CLICK_DATA_API,te.DATA_TOGGLE,function(t){"A"===t.target.tagName&&t.preventDefault();var e=yt.getDataAttributes(this),n=h(this);v(z.find(n)).forEach(function(t){var n,i=T.getData(t,Bt);i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,ee._collapseInterface(t,n)})}),"undefined"!=typeof u){var ne=u.fn[Vt];u.fn[Vt]=ee._jQueryInterface,u.fn[Vt].Constructor=ee,u.fn[Vt].noConflict=function(){return u.fn[Vt]=ne,ee._jQueryInterface}}var ie="dropdown",oe="bs.dropdown",re="."+oe,se=new RegExp("38|40|27"),ae={HIDE:"hide"+re,HIDDEN:"hidden"+re,SHOW:"show"+re,SHOWN:"shown"+re,CLICK:"click"+re,CLICK_DATA_API:"click"+re+".data-api",KEYDOWN_DATA_API:"keydown"+re+".data-api",KEYUP_DATA_API:"keyup"+re+".data-api"},le="disabled",ce="show",ue="dropup",fe="dropright",he="dropleft",de="dropdown-menu-right",ge="position-static",_e='[data-toggle="dropdown"]',pe=".dropdown form",me=".dropdown-menu",ve=".navbar-nav",ye=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Ee="top-start",be="top-end",De="bottom-start",Te="bottom-end",Ie="right-start",Ae="left-start",Se={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},we={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Oe=function(){function e(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners(),T.setData(t,oe,this)}var i=e.prototype;return i.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains(le)){var n=e._getParentFromElement(this._element),i=this._menu.classList.contains(ce);if(e._clearMenus(),!i){var o={relatedTarget:this._element};if(!X.trigger(n,ae.SHOW,o).defaultPrevented){if(!this._inNavbar){if("undefined"==typeof t)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var r=this._element;"parent"===this._config.reference?r=n:_(this._config.reference)&&(r=this._config.reference,"undefined"!=typeof this._config.reference.jquery&&(r=this._config.reference[0])),"scrollParent"!==this._config.boundary&&n.classList.add(ge),this._popper=new t(r,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&!v(z.closest(n,ve)).length&&v(document.body.children).forEach(function(t){return X.on(t,"mouseover",null,function(){})}),this._element.focus(),this._element.setAttribute("aria-expanded",!0),yt.toggleClass(this._menu,ce),yt.toggleClass(n,ce),X.trigger(n,ae.SHOWN,o)}}}},i.show=function(){if(!(this._element.disabled||this._element.classList.contains(le)||this._menu.classList.contains(ce))){var t=e._getParentFromElement(this._element),n={relatedTarget:this._element};X.trigger(t,ae.SHOW,n).defaultPrevented||(yt.toggleClass(this._menu,ce),yt.toggleClass(t,ce),X.trigger(t,ae.SHOWN,n))}},i.hide=function(){if(!this._element.disabled&&!this._element.classList.contains(le)&&this._menu.classList.contains(ce)){var t=e._getParentFromElement(this._element),n={relatedTarget:this._element};X.trigger(t,ae.HIDE,n).defaultPrevented||(yt.toggleClass(this._menu,ce),yt.toggleClass(t,ce),X.trigger(t,ae.HIDDEN,n))}},i.dispose=function(){T.removeData(this._element,oe),X.off(this._element,re),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},i.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},i._addEventListeners=function(){var t=this;X.on(this._element,ae.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},i._getConfig=function(t){return t=r({},this.constructor.Default,{},yt.getDataAttributes(this._element),{},t),m(ie,t,this.constructor.DefaultType),t},i._getMenuElement=function(){var t=e._getParentFromElement(this._element);return z.findOne(me,t)},i._getPlacement=function(){var t=this._element.parentNode,e=De;return t.classList.contains(ue)?(e=Ee,this._menu.classList.contains(de)&&(e=be)):t.classList.contains(fe)?e=Ie:t.classList.contains(he)?e=Ae:this._menu.classList.contains(de)&&(e=Te),e},i._detectNavbar=function(){return Boolean(z.closest(this._element,".navbar"))},i._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,{},t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},i._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),t},e._dropdownInterface=function(t,n){var i=T.getData(t,oe);if(i||(i=new e(t,"object"==typeof n?n:null)),"string"==typeof n){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}},e._jQueryInterface=function(t){return this.each(function(){e._dropdownInterface(this,t)})},e._clearMenus=function(t){if(!t||3!==t.which&&("keyup"!==t.type||9===t.which))for(var n=v(z.find(_e)),i=0,o=n.length;i<o;i++){var r=e._getParentFromElement(n[i]),s=T.getData(n[i],oe),a={relatedTarget:n[i]};if(t&&"click"===t.type&&(a.clickEvent=t),s){var l=s._menu;if(r.classList.contains(ce))if(!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&r.contains(t.target)))X.trigger(r,ae.HIDE,a).defaultPrevented||("ontouchstart"in document.documentElement&&v(document.body.children).forEach(function(t){return X.off(t,"mouseover",null,function(){})}),n[i].setAttribute("aria-expanded","false"),l.classList.remove(ce),r.classList.remove(ce),X.trigger(r,ae.HIDDEN,a))}}},e._getParentFromElement=function(t){var e,n=h(t);return n&&(e=z.findOne(n)),e||t.parentNode},e._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||z.closest(t.target,me))):se.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!this.classList.contains(le))){var n=e._getParentFromElement(this),i=n.classList.contains(ce);if(!i||i&&(27===t.which||32===t.which))return 27===t.which&&z.findOne(_e,n).focus(),void e._clearMenus();var o=v(z.find(ye,n));if(o.length){var r=o.indexOf(t.target);38===t.which&&r>0&&r--,40===t.which&&r<o.length-1&&r++,r<0&&(r=0),o[r].focus()}}},e._getInstance=function(t){return T.getData(t,oe)},n(e,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Se}},{key:"DefaultType",get:function(){return we}}]),e}();if(X.on(document,ae.KEYDOWN_DATA_API,_e,Oe._dataApiKeydownHandler),X.on(document,ae.KEYDOWN_DATA_API,me,Oe._dataApiKeydownHandler),X.on(document,ae.CLICK_DATA_API,Oe._clearMenus),X.on(document,ae.KEYUP_DATA_API,Oe._clearMenus),X.on(document,ae.CLICK_DATA_API,_e,function(t){t.preventDefault(),t.stopPropagation(),Oe._dropdownInterface(this,"toggle")}),X.on(document,ae.CLICK_DATA_API,pe,function(t){return t.stopPropagation()}),"undefined"!=typeof u){var Le=u.fn[ie];u.fn[ie]=Oe._jQueryInterface,u.fn[ie].Constructor=Oe,u.fn[ie].noConflict=function(){return u.fn[ie]=Le,Oe._jQueryInterface}}var Ce="bs.modal",Ne="."+Ce,ke={backdrop:!0,keyboard:!0,focus:!0,show:!0},Pe={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},He={HIDE:"hide"+Ne,HIDDEN:"hidden"+Ne,SHOW:"show"+Ne,SHOWN:"shown"+Ne,FOCUSIN:"focusin"+Ne,RESIZE:"resize"+Ne,CLICK_DISMISS:"click.dismiss"+Ne,KEYDOWN_DISMISS:"keydown.dismiss"+Ne,MOUSEUP_DISMISS:"mouseup.dismiss"+Ne,MOUSEDOWN_DISMISS:"mousedown.dismiss"+Ne,CLICK_DATA_API:"click"+Ne+".data-api"},je="modal-dialog-scrollable",Me="modal-scrollbar-measure",Re="modal-backdrop",We="modal-open",xe="fade",Ue="show",Ke={DIALOG:".modal-dialog",MODAL_BODY:".modal-body",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top"},Ve=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=z.findOne(Ke.DIALOG,t),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,T.setData(t,Ce,this)}var e=t.prototype;return e.toggle=function(t){return this._isShown?this.hide():this.show(t)},e.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){this._element.classList.contains(xe)&&(this._isTransitioning=!0);var n=X.trigger(this._element,He.SHOW,{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),X.on(this._element,He.CLICK_DISMISS,Ke.DATA_DISMISS,function(t){return e.hide(t)}),X.on(this._dialog,He.MOUSEDOWN_DISMISS,function(){X.one(e._element,He.MOUSEUP_DISMISS,function(t){t.target===e._element&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},e.hide=function(t){var e=this;if((t&&t.preventDefault(),this._isShown&&!this._isTransitioning)&&!X.trigger(this._element,He.HIDE).defaultPrevented){this._isShown=!1;var n=this._element.classList.contains(xe);if(n&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),X.off(document,He.FOCUSIN),this._element.classList.remove(Ue),X.off(this._element,He.CLICK_DISMISS),X.off(this._dialog,He.MOUSEDOWN_DISMISS),n){var i=d(this._element);X.one(this._element,c,function(t){return e._hideModal(t)}),p(this._element,i)}else this._hideModal()}},e.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return X.off(t,Ne)}),X.off(document,He.FOCUSIN),T.removeData(this._element,Ce),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},e.handleUpdate=function(){this._adjustDialog()},e._getConfig=function(t){return t=r({},ke,{},t),m("modal",t,Pe),t},e._showElement=function(t){var e=this,n=this._element.classList.contains(xe);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._dialog.classList.contains(je)?z.findOne(Ke.MODAL_BODY,this._dialog).scrollTop=0:this._element.scrollTop=0,n&&b(this._element),this._element.classList.add(Ue),this._config.focus&&this._enforceFocus();var i=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,X.trigger(e._element,He.SHOWN,{relatedTarget:t})};if(n){var o=d(this._dialog);X.one(this._dialog,c,i),p(this._dialog,o)}else i()},e._enforceFocus=function(){var t=this;X.off(document,He.FOCUSIN),X.on(document,He.FOCUSIN,function(e){document===e.target||t._element===e.target||t._element.contains(e.target)||t._element.focus()})},e._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?X.on(this._element,He.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):X.off(this._element,He.KEYDOWN_DISMISS)},e._setResizeEvent=function(){var t=this;this._isShown?X.on(window,He.RESIZE,function(){return t._adjustDialog()}):X.off(window,He.RESIZE)},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){document.body.classList.remove(We),t._resetAdjustments(),t._resetScrollbar(),X.trigger(t._element,He.HIDDEN)})},e._removeBackdrop=function(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null},e._showBackdrop=function(t){var e=this,n=this._element.classList.contains(xe)?xe:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=Re,n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),X.on(this._element,He.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&b(this._backdrop),this._backdrop.classList.add(Ue),!n)return void t();var i=d(this._backdrop);X.one(this._backdrop,c,t),p(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove(Ue);var o=function(){e._removeBackdrop(),t()};if(this._element.classList.contains(xe)){var r=d(this._backdrop);X.one(this._backdrop,c,o),p(this._backdrop,r)}else o()}else t()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){v(z.find(Ke.FIXED_CONTENT)).forEach(function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];yt.setDataAttribute(e,"padding-right",n),e.style.paddingRight=parseFloat(i)+t._scrollbarWidth+"px"}),v(z.find(Ke.STICKY_CONTENT)).forEach(function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];yt.setDataAttribute(e,"margin-right",n),e.style.marginRight=parseFloat(i)-t._scrollbarWidth+"px"});var e=document.body.style.paddingRight,n=window.getComputedStyle(document.body)["padding-right"];yt.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add(We)},e._resetScrollbar=function(){v(z.find(Ke.FIXED_CONTENT)).forEach(function(t){var e=yt.getDataAttribute(t,"padding-right");"undefined"!=typeof e&&(yt.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)}),v(z.find(""+Ke.STICKY_CONTENT)).forEach(function(t){var e=yt.getDataAttribute(t,"margin-right");"undefined"!=typeof e&&(yt.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)});var t=yt.getDataAttribute(document.body,"padding-right");"undefined"==typeof t?document.body.style.paddingRight="":(yt.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},e._getScrollbarWidth=function(){var t=document.createElement("div");t.className=Me,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t._jQueryInterface=function(e,n){return this.each(function(){var i=T.getData(this,Ce),o=r({},ke,{},yt.getDataAttributes(this),{},"object"==typeof e&&e?e:{});if(i||(i=new t(this,o)),"string"==typeof e){if("undefined"==typeof i[e])throw new TypeError('No method named "'+e+'"');i[e](n)}else o.show&&i.show(n)})},t._getInstance=function(t){return T.getData(t,Ce)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return ke}}]),t}();if(X.on(document,He.CLICK_DATA_API,Ke.DATA_TOGGLE,function(t){var e=this,n=h(this),i=z.findOne(n);"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),X.one(i,He.SHOW,function(t){t.defaultPrevented||X.one(i,He.HIDDEN,function(){y(e)&&e.focus()})});var o=T.getData(i,Ce);if(!o){var s=r({},yt.getDataAttributes(i),{},yt.getDataAttributes(this));o=new Ve(i,s)}o.show(this)}),"undefined"!=typeof u){var Be=u.fn.modal;u.fn.modal=Ve._jQueryInterface,u.fn.modal.Constructor=Ve,u.fn.modal.noConflict=function(){return u.fn.modal=Be,Ve._jQueryInterface}}var Fe=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Qe=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,Ye=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,Ge=function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Fe.indexOf(n)||Boolean(t.nodeValue.match(Qe)||t.nodeValue.match(Ye));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1},Xe={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function ze(t,e,n){if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),r=v(i.body.querySelectorAll("*")),s=function(t,n){var i=r[t],s=i.nodeName.toLowerCase();if(-1===o.indexOf(s))return i.parentNode.removeChild(i),"continue";var a=v(i.attributes),l=[].concat(e["*"]||[],e[s]||[]);a.forEach(function(t){Ge(t,l)||i.removeAttribute(t.nodeName)})},a=0,l=r.length;a<l;a++)s(a);return i.body.innerHTML}var qe="tooltip",Ze=new RegExp("(^|\\s)bs-tooltip\\S+","g"),$e=["sanitize","whiteList","sanitizeFn"],Je={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},tn={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},en={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Xe},nn="show",on="out",rn={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},sn="fade",an="show",ln=".tooltip-inner",cn="hover",un="focus",fn="click",hn="manual",dn=function(){function e(e,n){if("undefined"==typeof t)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=e,this.config=this._getConfig(n),this.tip=null,this._setListeners(),T.setData(e,this.constructor.DATA_KEY,this)}var i=e.prototype;return i.enable=function(){this._isEnabled=!0},i.disable=function(){this._isEnabled=!1},i.toggleEnabled=function(){this._isEnabled=!this._isEnabled},i.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=T.getData(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),T.setData(t.delegateTarget,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(an))return void this._leave(null,this);this._enter(null,this)}},i.dispose=function(){clearTimeout(this._timeout),T.removeData(this.element,this.constructor.DATA_KEY),X.off(this.element,this.constructor.EVENT_KEY),X.off(z.closest(this.element,".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},i.show=function(){var e=this;if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var n=X.trigger(this.element,this.constructor.Event.SHOW),i=function t(e){if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){var n=e.getRootNode();return n instanceof ShadowRoot?n:null}return e instanceof ShadowRoot?e:e.parentNode?t(e.parentNode):null}(this.element),o=null===i?this.element.ownerDocument.documentElement.contains(this.element):i.contains(this.element);if(n.defaultPrevented||!o)return;var r=this.getTipElement(),s=f(this.constructor.NAME);r.setAttribute("id",s),this.element.setAttribute("aria-describedby",s),this.setContent(),this.config.animation&&r.classList.add(sn);var a="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,l=this._getAttachment(a);this._addAttachmentClass(l);var u=this._getContainer();T.setData(r,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||u.appendChild(r),X.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new t(this.element,r,{placement:l,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:"."+this.constructor.NAME+"-arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),r.classList.add(an),"ontouchstart"in document.documentElement&&v(document.body.children).forEach(function(t){X.on(t,"mouseover",function(){})});var h=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,X.trigger(e.element,e.constructor.Event.SHOWN),t===on&&e._leave(null,e)};if(this.tip.classList.contains(sn)){var g=d(this.tip);X.one(this.tip,c,h),p(this.tip,g)}else h()}},i.hide=function(){var t=this,e=this.getTipElement(),n=function(){t._hoverState!==nn&&e.parentNode&&e.parentNode.removeChild(e),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),X.trigger(t.element,t.constructor.Event.HIDDEN),t._popper.destroy()};if(!X.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){if(e.classList.remove(an),"ontouchstart"in document.documentElement&&v(document.body.children).forEach(function(t){return X.off(t,"mouseover",E)}),this._activeTrigger[fn]=!1,this._activeTrigger[un]=!1,this._activeTrigger[cn]=!1,this.tip.classList.contains(sn)){var i=d(e);X.one(e,c,n),p(e,i)}else n();this._hoverState=""}},i.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},i.isWithContent=function(){return Boolean(this.getTitle())},i.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},i.setContent=function(){var t=this.getTipElement();this.setElementContent(z.findOne(ln,t),this.getTitle()),t.classList.remove(sn),t.classList.remove(an)},i.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&_(e)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.innerText=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=ze(e,this.config.whiteList,this.config.sanitizeFn)),t.innerHTML=e):t.innerText=e)},i.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},i._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+t)},i._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=r({},e.offsets,{},t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},i._getContainer=function(){return!1===this.config.container?document.body:_(this.config.container)?this.config.container:z.findOne(this.config.container)},i._getAttachment=function(t){return tn[t.toUpperCase()]},i._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(e){if("click"===e)X.on(t.element,t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(e!==hn){var n=e===cn?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i=e===cn?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;X.on(t.element,n,t.config.selector,function(e){return t._enter(e)}),X.on(t.element,i,t.config.selector,function(e){return t._leave(e)})}}),this._hideModalHandler=function(){t.element&&t.hide()},X.on(z.closest(this.element,".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=r({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},i._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},i._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||T.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),T.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?un:cn]=!0),e.getTipElement().classList.contains(an)||e._hoverState===nn?e._hoverState=nn:(clearTimeout(e._timeout),e._hoverState=nn,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===nn&&e.show()},e.config.delay.show):e.show())},i._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||T.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),T.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?un:cn]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=on,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===on&&e.hide()},e.config.delay.hide):e.hide())},i._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},i._getConfig=function(t){var e=yt.getDataAttributes(this.element);return Object.keys(e).forEach(function(t){-1!==$e.indexOf(t)&&delete e[t]}),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=r({},this.constructor.Default,{},e,{},"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),m(qe,t,this.constructor.DefaultType),t.sanitize&&(t.template=ze(t.template,t.whiteList,t.sanitizeFn)),t},i._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},i._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(Ze);null!==e&&e.length&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},i._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(t.placement))},i._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(t.classList.remove(sn),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},e._jQueryInterface=function(t){return this.each(function(){var n=T.getData(this,"bs.tooltip"),i="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new e(this,i)),"string"==typeof t)){if("undefined"==typeof n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},e._getInstance=function(t){return T.getData(t,"bs.tooltip")},n(e,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return en}},{key:"NAME",get:function(){return qe}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return rn}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Je}}]),e}();if("undefined"!=typeof u){var gn=u.fn.tooltip;u.fn.tooltip=dn._jQueryInterface,u.fn.tooltip.Constructor=dn,u.fn.tooltip.noConflict=function(){return u.fn.tooltip=gn,dn._jQueryInterface}}var _n="popover",pn=new RegExp("(^|\\s)bs-popover\\S+","g"),mn=r({},dn.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),vn=r({},dn.DefaultType,{content:"(string|element|function)"}),yn="fade",En="show",bn=".popover-header",Dn=".popover-body",Tn={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},In=function(t){var e,i;function o(){return t.apply(this,arguments)||this}i=t,(e=o).prototype=Object.create(i.prototype),e.prototype.constructor=e,e.__proto__=i;var r=o.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},r.setContent=function(){var t=this.getTipElement();this.setElementContent(z.findOne(bn,t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(z.findOne(Dn,t),e),t.classList.remove(yn),t.classList.remove(En)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(pn);null!==e&&e.length>0&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},o._jQueryInterface=function(t){return this.each(function(){var e=T.getData(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),T.setData(this,"bs.popover",e)),"string"==typeof t)){if("undefined"==typeof e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})},o._getInstance=function(t){return T.getData(t,"bs.popover")},n(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return mn}},{key:"NAME",get:function(){return _n}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return Tn}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return vn}}]),o}(dn);if("undefined"!=typeof u){var An=u.fn.popover;u.fn.popover=In._jQueryInterface,u.fn.popover.Constructor=In,u.fn.popover.noConflict=function(){return u.fn.popover=An,In._jQueryInterface}}var Sn="scrollspy",wn="bs.scrollspy",On="."+wn,Ln={offset:10,method:"auto",target:""},Cn={offset:"number",method:"string",target:"(string|element)"},Nn={ACTIVATE:"activate"+On,SCROLL:"scroll"+On,LOAD_DATA_API:"load"+On+".data-api"},kn={DROPDOWN_ITEM:"dropdown-item",ACTIVE:"active"},Pn={DATA_SPY:'[data-spy="scroll"]',NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_TOGGLE:".dropdown-toggle"},Hn="offset",jn="position",Mn=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+Pn.NAV_LINKS+","+this._config.target+" "+Pn.LIST_ITEMS+","+this._config.target+" ."+kn.DROPDOWN_ITEM,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,X.on(this._scrollElement,Nn.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process(),T.setData(t,wn,this)}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?Hn:jn,n="auto"===this._config.method?e:this._config.method,i=n===jn?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),v(z.find(this._selector)).map(function(t){var e,o=h(t);if(o&&(e=z.findOne(o)),e){var r=e.getBoundingClientRect();if(r.width||r.height)return[yt[n](e).top+i,o]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},e.dispose=function(){T.removeData(this._element,wn),X.off(this._scrollElement,On),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=r({},Ln,{},"object"==typeof t&&t?t:{})).target){var e=t.target.id;e||(e=f(Sn),t.target.id=e),t.target="#"+e}return m(Sn,t,Cn),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t<this._offsets[o+1])&&this._activate(this._targets[o])}}},e._activate=function(t){this._activeTarget=t,this._clear();var e=this._selector.split(",").map(function(e){return e+'[data-target="'+t+'"],'+e+'[href="'+t+'"]'}),n=z.findOne(e.join(","));n.classList.contains(kn.DROPDOWN_ITEM)?(z.findOne(Pn.DROPDOWN_TOGGLE,z.closest(n,Pn.DROPDOWN)).classList.add(kn.ACTIVE),n.classList.add(kn.ACTIVE)):(n.classList.add(kn.ACTIVE),z.parents(n,Pn.NAV_LIST_GROUP).forEach(function(t){z.prev(t,Pn.NAV_LINKS+", "+Pn.LIST_ITEMS).forEach(function(t){return t.classList.add(kn.ACTIVE)}),z.prev(t,Pn.NAV_ITEMS).forEach(function(t){z.children(t,Pn.NAV_LINKS).forEach(function(t){return t.classList.add(kn.ACTIVE)})})})),X.trigger(this._scrollElement,Nn.ACTIVATE,{relatedTarget:t})},e._clear=function(){v(z.find(this._selector)).filter(function(t){return t.classList.contains(kn.ACTIVE)}).forEach(function(t){return t.classList.remove(kn.ACTIVE)})},t._jQueryInterface=function(e){return this.each(function(){var n=T.getData(this,wn);if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return T.getData(t,wn)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ln}}]),t}();if(X.on(window,Nn.LOAD_DATA_API,function(){v(z.find(Pn.DATA_SPY)).forEach(function(t){return new Mn(t,yt.getDataAttributes(t))})}),"undefined"!=typeof u){var Rn=u.fn[Sn];u.fn[Sn]=Mn._jQueryInterface,u.fn[Sn].Constructor=Mn,u.fn[Sn].noConflict=function(){return u.fn[Sn]=Rn,Mn._jQueryInterface}}var Wn="bs.tab",xn="."+Wn,Un={HIDE:"hide"+xn,HIDDEN:"hidden"+xn,SHOW:"show"+xn,SHOWN:"shown"+xn,CLICK_DATA_API:"click"+xn+".data-api"},Kn="dropdown-menu",Vn="active",Bn="disabled",Fn="fade",Qn="show",Yn=".dropdown",Gn=".nav, .list-group",Xn=".active",zn=":scope > li > .active",qn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Zn=".dropdown-toggle",$n=":scope > .dropdown-menu .active",Jn=function(){function t(t){this._element=t,T.setData(this._element,Wn,this)}var e=t.prototype;return e.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(Vn)||this._element.classList.contains(Bn))){var e,n,i=z.closest(this._element,Gn),o=h(this._element);if(i){var r="UL"===i.nodeName||"OL"===i.nodeName?zn:Xn;n=(n=v(z.find(r,i)))[n.length-1]}var s=null;if(n&&(s=X.trigger(n,Un.HIDE,{relatedTarget:this._element})),!(X.trigger(this._element,Un.SHOW,{relatedTarget:n}).defaultPrevented||null!==s&&s.defaultPrevented)){o&&(e=z.findOne(o)),this._activate(this._element,i);var a=function(){X.trigger(n,Un.HIDDEN,{relatedTarget:t._element}),X.trigger(t._element,Un.SHOWN,{relatedTarget:n})};e?this._activate(e,e.parentNode,a):a()}}},e.dispose=function(){T.removeData(this._element,Wn),this._element=null},e._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?z.children(e,Xn):z.find(zn,e))[0],r=n&&o&&o.classList.contains(Fn),s=function(){return i._transitionComplete(t,o,n)};if(o&&r){var a=d(o);o.classList.remove(Qn),X.one(o,c,s),p(o,a)}else s()},e._transitionComplete=function(t,e,n){if(e){e.classList.remove(Vn);var i=z.findOne($n,e.parentNode);i&&i.classList.remove(Vn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add(Vn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),b(t),t.classList.contains(Fn)&&t.classList.add(Qn),t.parentNode&&t.parentNode.classList.contains(Kn))&&(z.closest(t,Yn)&&v(z.find(Zn)).forEach(function(t){return t.classList.add(Vn)}),t.setAttribute("aria-expanded",!0));n&&n()},t._jQueryInterface=function(e){return this.each(function(){var n=T.getData(this,Wn)||new t(this);if("string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return T.getData(t,Wn)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(X.on(document,Un.CLICK_DATA_API,qn,function(t){t.preventDefault(),(T.getData(this,Wn)||new Jn(this)).show()}),"undefined"!=typeof u){var ti=u.fn.tab;u.fn.tab=Jn._jQueryInterface,u.fn.tab.Constructor=Jn,u.fn.tab.noConflict=function(){return u.fn.tab=ti,Jn._jQueryInterface}}var ei="bs.toast",ni="."+ei,ii={CLICK_DISMISS:"click.dismiss"+ni,HIDE:"hide"+ni,HIDDEN:"hidden"+ni,SHOW:"show"+ni,SHOWN:"shown"+ni},oi="fade",ri="hide",si="show",ai="showing",li={animation:"boolean",autohide:"boolean",delay:"number"},ci={animation:!0,autohide:!0,delay:500},ui='[data-dismiss="toast"]',fi=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),T.setData(t,ei,this)}var e=t.prototype;return e.show=function(){var t=this;if(!X.trigger(this._element,ii.SHOW).defaultPrevented){this._config.animation&&this._element.classList.add(oi);var e=function(){t._element.classList.remove(ai),t._element.classList.add(si),X.trigger(t._element,ii.SHOWN),t._config.autohide&&(t._timeout=setTimeout(function(){t.hide()},t._config.delay))};if(this._element.classList.remove(ri),b(this._element),this._element.classList.add(ai),this._config.animation){var n=d(this._element);X.one(this._element,c,e),p(this._element,n)}else e()}},e.hide=function(){var t=this;if(this._element.classList.contains(si)&&!X.trigger(this._element,ii.HIDE).defaultPrevented){var e=function(){t._element.classList.add(ri),X.trigger(t._element,ii.HIDDEN)};if(this._element.classList.remove(si),this._config.animation){var n=d(this._element);X.one(this._element,c,e),p(this._element,n)}else e()}},e.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(si)&&this._element.classList.remove(si),X.off(this._element,ii.CLICK_DISMISS),T.removeData(this._element,ei),this._element=null,this._config=null},e._getConfig=function(t){return t=r({},ci,{},yt.getDataAttributes(this._element),{},"object"==typeof t&&t?t:{}),m("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;X.on(this._element,ii.CLICK_DISMISS,ui,function(){return t.hide()})},t._jQueryInterface=function(e){return this.each(function(){var n=T.getData(this,ei);if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if("undefined"==typeof n[e])throw new TypeError('No method named "'+e+'"');n[e](this)}})},t._getInstance=function(t){return T.getData(t,ei)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return li}},{key:"Default",get:function(){return ci}}]),t}();if("undefined"!=typeof u){var hi=u.fn.toast;u.fn.toast=fi._jQueryInterface,u.fn.toast.Constructor=fi,u.fn.toast.noConflict=function(){return u.fn.toast=hi,fi._jQueryInterface}}return{Alert:nt,Button:_t,Carousel:Ut,Collapse:ee,Dropdown:Oe,Modal:Ve,Popover:In,ScrollSpy:Mn,Tab:Jn,Toast:fi,Tooltip:dn}}); //# sourceMappingURL=bootstrap.min.js.map
\ No newline at end of file diff --git a/dist/js/bootstrap.min.js.map b/dist/js/bootstrap.min.js.map index df00187258..4bb4d5bea2 100644 --- a/dist/js/bootstrap.min.js.map +++ b/dist/js/bootstrap.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/event-handler.js","../../js/src/dom/selector-engine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"names":["storeData","id","e","TRANSITION_END","jQuery","window","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","_window$getComputedSt","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","obj","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","toString","call","match","toLowerCase","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","noop","reflow","offsetHeight","mapData","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","CustomEvent","bubbles","cancelable","detail","initCustomEvent","preventDefault","defaultPrevented","origPreventDefault","Event","this","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","hasId","Boolean","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","findHandler","events","handler","delegationSelector","uidEventList","i","len","length","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","oneOff","_normalizeParams","handlers","previousFn","fn","domElements","target","EventHandler","off","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","substr","keyHandlers","trigger","args","jQueryEvent","isNative","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","SelectorEngine","documentElement","findFn","children","_this","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","DATA_KEY","EVENT_KEY","CLOSE","CLOSED","CLICK_DATA_API","ClassName","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","Selector","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","NAME","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","ACTIVE","ACTIVE_ITEM","ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","pointerType","clientX","touches","end","clearTimeout","itemImg","move","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","SHOW","SHOWN","HIDE","HIDDEN","Dimension","ACTIVES","DATA_TOGGLE","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","AttachmentMap","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","Popper","referenceElement","_getPopperConfig","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","hideEvent","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","_this9","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","_this10","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","*","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","_loop","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","TOP","RIGHT","BOTTOM","LEFT","HoverState","INSERTED","FOCUSOUT","Trigger","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","findShadowRoot","attachShadow","getRootNode","root","ShadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","content","innerText","textContent","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","node","spy","Tab","listElement","itemSelector","active","_transitionComplete","dropdownChild","dropdown","autohide","Toast"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\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 if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\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 const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\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 static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n SelectorEngine.findOne(Selector.DATA_TOGGLE, parent).focus()\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n this._hideModalHandler\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = EventHandler.trigger(this._element, Event.SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"]}
\ No newline at end of file +{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/event-handler.js","../../js/src/dom/selector-engine.js","../../js/src/alert/alert.js","../../js/src/button/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel/carousel.js","../../js/src/collapse/collapse.js","../../js/src/dropdown/dropdown.js","../../js/src/modal/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip/tooltip.js","../../js/src/popover/popover.js","../../js/src/scrollspy/scrollspy.js","../../js/src/tab/tab.js","../../js/src/toast/toast.js","../../js/index.umd.js"],"names":["storeData","id","e","TRANSITION_END","jQuery","window","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","_window$getComputedSt","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","obj","nodeType","emulateTransitionEnd","duration","called","emulatedDuration","addEventListener","listener","removeEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","toString","call","match","toLowerCase","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","noop","reflow","offsetHeight","mapData","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Element","prototype","matches","closest","find","querySelectorAll","findOne","createCustomEvent","eventName","params","CustomEvent","bubbles","cancelable","detail","initCustomEvent","preventDefault","defaultPrevented","origPreventDefault","Event","this","defineProperty","configurable","defaultPreventedPreservedOnDispatch","createElement","msMatchesSelector","webkitMatchesSelector","parentElement","scopeSelectorRegex","hasId","Boolean","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","findHandler","events","handler","delegationSelector","uidEventList","i","len","length","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","oneOff","_normalizeParams","handlers","previousFn","fn","domElements","target","EventHandler","off","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","substr","keyHandlers","trigger","args","jQueryEvent","isNative","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","SelectorEngine","documentElement","findFn","children","_this","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling","DATA_KEY","EVENT_KEY","CLOSE","CLOSED","CLICK_DATA_API","ClassName","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","Selector","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread2","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","NAME","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","ACTIVE","ACTIVE_ITEM","ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","pointerType","clientX","touches","end","clearTimeout","itemImg","move","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","SHOW","SHOWN","HIDE","HIDDEN","Dimension","ACTIVES","DATA_TOGGLE","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","selected","triggerArray","isOpen","triggerData","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","AttachmentMap","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","Popper","referenceElement","_getPopperConfig","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","_this9","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","_this10","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","*","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","_loop","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","TOP","RIGHT","BOTTOM","LEFT","HoverState","INSERTED","FOCUSOUT","Trigger","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","findShadowRoot","attachShadow","getRootNode","root","ShadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","CLASS_PREFIX","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","Popover","_getContent","addAttachmentClass","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","node","spy","Tab","listElement","itemSelector","hideEvent","active","_transitionComplete","dropdownChild","dropdown","autohide","Toast"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n const siblings = []\n\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.add(ClassName.FOCUS)\n }\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n\n if (button) {\n button.classList.remove(ClassName.FOCUS)\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\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 if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\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 const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\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 static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n const selector = getSelectorFromElement(element)\n const selected = selector ? SelectorEngine.findOne(selector) : null\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n const parent = Dropdown._getParentFromElement(this._element)\n\n return SelectorEngine.findOne(Selector.MENU, parent)\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n SelectorEngine.findOne(Selector.DATA_TOGGLE, parent).focus()\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n const selector = getSelectorFromElement(this)\n const target = SelectorEngine.findOne(selector)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from '../util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from '../util/sanitizer'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide() {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n this._popper.destroy()\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n this._hideModalHandler\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport Data from '../dom/data'\nimport SelectorEngine from '../dom/selector-engine'\nimport Tooltip from '../tooltip/tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport SelectorEngine from '../dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from '../util/index'\nimport Data from '../dom/data'\nimport EventHandler from '../dom/event-handler'\nimport Manipulator from '../dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = EventHandler.trigger(this._element, Event.SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n reflow(this._element)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert/alert'\nimport Button from './src/button/button'\nimport Carousel from './src/carousel/carousel'\nimport Collapse from './src/collapse/collapse'\nimport Dropdown from './src/dropdown/dropdown'\nimport Modal from './src/modal/modal'\nimport Popover from './src/popover/popover'\nimport ScrollSpy from './src/scrollspy/scrollspy'\nimport Tab from './src/tab/tab'\nimport Toast from './src/toast/toast'\nimport Tooltip from './src/tooltip/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"]}
\ No newline at end of file |