Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/dist/js
diff options
context:
space:
mode:
Diffstat (limited to 'dist/js')
-rw-r--r--dist/js/bootstrap.bundle.js385
-rw-r--r--dist/js/bootstrap.bundle.js.map2
-rw-r--r--dist/js/bootstrap.bundle.min.js2
-rw-r--r--dist/js/bootstrap.bundle.min.js.map2
-rw-r--r--dist/js/bootstrap.esm.js385
-rw-r--r--dist/js/bootstrap.esm.js.map2
-rw-r--r--dist/js/bootstrap.esm.min.js2
-rw-r--r--dist/js/bootstrap.esm.min.js.map2
-rw-r--r--dist/js/bootstrap.js385
-rw-r--r--dist/js/bootstrap.js.map2
-rw-r--r--dist/js/bootstrap.min.js2
-rw-r--r--dist/js/bootstrap.min.js.map2
12 files changed, 519 insertions, 654 deletions
diff --git a/dist/js/bootstrap.bundle.js b/dist/js/bootstrap.bundle.js
index 778432dca4..34907e97ef 100644
--- a/dist/js/bootstrap.bundle.js
+++ b/dist/js/bootstrap.bundle.js
@@ -409,7 +409,6 @@
var $ = getjQuery();
var namespaceRegex = /[^.]*(?=\..*)\.|.*/;
var stripNameRegex = /\..*/;
- var keyEventRegex = /^key/;
var stripUidRegex = /::\d+$/;
var eventRegistry = {}; // Events storage
@@ -436,19 +435,8 @@
return eventRegistry[uid];
}
- function fixEvent(event, element) {
- // Add which for key events
- if (event.which === null && keyEventRegex.test(event.type)) {
- event.which = event.charCode === null ? event.keyCode : event.charCode;
- }
-
- event.delegateTarget = element;
- }
-
function bootstrapHandler(element, fn) {
return function handler(event) {
- fixEvent(event, element);
-
if (handler.oneOff) {
EventHandler.off(element, event.type, fn);
}
@@ -464,8 +452,6 @@
for (var target = event.target; target && target !== this; target = target.parentNode) {
for (var i = domElements.length; i--;) {
if (domElements[i] === target) {
- fixEvent(event, target);
-
if (handler.oneOff) {
EventHandler.off(element, event.type, fn);
}
@@ -688,93 +674,6 @@
};
/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.3.1): dom/selector-engine.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
-
- var NODE_TEXT = 3;
- var SelectorEngine = {
- matches: function matches(element, selector) {
- return element.matches(selector);
- },
- find: function find$1(selector, element) {
- var _ref;
-
- if (element === void 0) {
- element = document.documentElement;
- }
-
- return (_ref = []).concat.apply(_ref, find.call(element, selector));
- },
- findOne: function findOne$1(selector, element) {
- if (element === void 0) {
- element = document.documentElement;
- }
-
- return findOne.call(element, selector);
- },
- children: function children(element, selector) {
- var _ref2;
-
- var children = (_ref2 = []).concat.apply(_ref2, element.children);
-
- return children.filter(function (child) {
- return child.matches(selector);
- });
- },
- parents: function parents(element, selector) {
- var parents = [];
- var ancestor = element.parentNode;
-
- while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {
- if (this.matches(ancestor, selector)) {
- parents.push(ancestor);
- }
-
- ancestor = ancestor.parentNode;
- }
-
- return parents;
- },
- closest: function closest(element, selector) {
- return element.closest(selector);
- },
- prev: function prev(element, selector) {
- var previous = element.previousElementSibling;
-
- while (previous) {
- if (previous.matches(selector)) {
- return [previous];
- }
-
- previous = previous.previousElementSibling;
- }
-
- return [];
- },
- next: function next(element, selector) {
- var next = element.nextElementSibling;
-
- while (next) {
- if (this.matches(next, selector)) {
- return [next];
- }
-
- next = next.nextElementSibling;
- }
-
- return [];
- }
- };
-
- /**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
@@ -834,13 +733,7 @@
;
_proto._getRootElement = function _getRootElement(element) {
- var parent = getElementFromSelector(element);
-
- if (!parent) {
- parent = SelectorEngine.closest(element, "." + CLASSNAME_ALERT);
- }
-
- return parent;
+ return getElementFromSelector(element) || element.closest("." + CLASSNAME_ALERT);
};
_proto._triggerCloseEvent = function _triggerCloseEvent(element) {
@@ -941,6 +834,90 @@
}
/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.3.1): dom/selector-engine.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NODE_TEXT = 3;
+ var SelectorEngine = {
+ matches: function matches(element, selector) {
+ return element.matches(selector);
+ },
+ find: function find$1(selector, element) {
+ var _ref;
+
+ if (element === void 0) {
+ element = document.documentElement;
+ }
+
+ return (_ref = []).concat.apply(_ref, find.call(element, selector));
+ },
+ findOne: function findOne$1(selector, element) {
+ if (element === void 0) {
+ element = document.documentElement;
+ }
+
+ return findOne.call(element, selector);
+ },
+ children: function children(element, selector) {
+ var _ref2;
+
+ var children = (_ref2 = []).concat.apply(_ref2, element.children);
+
+ return children.filter(function (child) {
+ return child.matches(selector);
+ });
+ },
+ parents: function parents(element, selector) {
+ var parents = [];
+ var ancestor = element.parentNode;
+
+ while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {
+ if (this.matches(ancestor, selector)) {
+ parents.push(ancestor);
+ }
+
+ ancestor = ancestor.parentNode;
+ }
+
+ return parents;
+ },
+ prev: function prev(element, selector) {
+ var previous = element.previousElementSibling;
+
+ while (previous) {
+ if (previous.matches(selector)) {
+ return [previous];
+ }
+
+ previous = previous.previousElementSibling;
+ }
+
+ return [];
+ },
+ next: function next(element, selector) {
+ var next = element.nextElementSibling;
+
+ while (next) {
+ if (this.matches(next, selector)) {
+ return [next];
+ }
+
+ next = next.nextElementSibling;
+ }
+
+ return [];
+ }
+ };
+
+ /**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
@@ -952,7 +929,6 @@
var EVENT_KEY$1 = "." + DATA_KEY$1;
var DATA_API_KEY$1 = '.data-api';
var CLASS_NAME_ACTIVE = 'active';
- var CLASS_NAME_BUTTON = 'btn';
var CLASS_NAME_DISABLED = 'disabled';
var CLASS_NAME_FOCUS = 'focus';
var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]';
@@ -982,7 +958,8 @@
_proto.toggle = function toggle() {
var triggerChangeEvent = true;
var addAriaPressed = true;
- var rootElement = SelectorEngine.closest(this._element, SELECTOR_DATA_TOGGLE);
+
+ var rootElement = this._element.closest(SELECTOR_DATA_TOGGLE);
if (rootElement) {
var input = SelectorEngine.findOne(SELECTOR_INPUT, this._element);
@@ -1063,12 +1040,7 @@
EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
event.preventDefault();
- var button = event.target;
-
- if (!button.classList.contains(CLASS_NAME_BUTTON)) {
- button = SelectorEngine.closest(button, SELECTOR_BUTTON);
- }
-
+ var button = event.target.closest(SELECTOR_BUTTON);
var data = Data.getData(button, DATA_KEY$1);
if (!data) {
@@ -1078,14 +1050,14 @@
data.toggle();
});
EventHandler.on(document, EVENT_FOCUS_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
- var button = SelectorEngine.closest(event.target, SELECTOR_BUTTON);
+ var button = event.target.closest(SELECTOR_BUTTON);
if (button) {
button.classList.add(CLASS_NAME_FOCUS);
}
});
EventHandler.on(document, EVENT_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
- var button = SelectorEngine.closest(event.target, SELECTOR_BUTTON);
+ var button = event.target.closest(SELECTOR_BUTTON);
if (button) {
button.classList.remove(CLASS_NAME_FOCUS);
@@ -1203,10 +1175,8 @@
var DATA_KEY$2 = 'bs.carousel';
var EVENT_KEY$2 = "." + DATA_KEY$2;
var DATA_API_KEY$2 = '.data-api';
- var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
-
- var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
-
+ var ARROW_LEFT_KEY = 'ArrowLeft';
+ var ARROW_RIGHT_KEY = 'ArrowRight';
var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
var SWIPE_THRESHOLD = 40;
@@ -1283,7 +1253,7 @@
this._element = element;
this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
- this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);
+ this._pointerEvent = Boolean(window.PointerEvent);
this._addEventListeners();
@@ -1387,7 +1357,7 @@
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default, {}, config);
+ config = _objectSpread2(_objectSpread2({}, Default), config);
typeCheckConfig(NAME$2, config, DefaultType);
return config;
};
@@ -1515,13 +1485,13 @@
return;
}
- switch (event.which) {
- case ARROW_LEFT_KEYCODE:
+ switch (event.key) {
+ case ARROW_LEFT_KEY:
event.preventDefault();
this.prev();
break;
- case ARROW_RIGHT_KEYCODE:
+ case ARROW_RIGHT_KEY:
event.preventDefault();
this.next();
break;
@@ -1646,12 +1616,9 @@
var transitionDuration = getTransitionDurationFromElement(activeElement);
EventHandler.one(activeElement, TRANSITION_END, function () {
- nextElement.classList.remove(directionalClassName);
- nextElement.classList.remove(orderClassName);
+ nextElement.classList.remove(directionalClassName, orderClassName);
nextElement.classList.add(CLASS_NAME_ACTIVE$1);
- activeElement.classList.remove(CLASS_NAME_ACTIVE$1);
- activeElement.classList.remove(orderClassName);
- activeElement.classList.remove(directionalClassName);
+ activeElement.classList.remove(CLASS_NAME_ACTIVE$1, orderClassName, directionalClassName);
_this4._isSliding = false;
setTimeout(function () {
EventHandler.trigger(_this4._element, EVENT_SLID, {
@@ -1684,10 +1651,10 @@
Carousel.carouselInterface = function carouselInterface(element, config) {
var data = Data.getData(element, DATA_KEY$2);
- var _config = _objectSpread2({}, Default, {}, Manipulator.getDataAttributes(element));
+ var _config = _objectSpread2(_objectSpread2({}, Default), Manipulator.getDataAttributes(element));
if (typeof config === 'object') {
- _config = _objectSpread2({}, _config, {}, config);
+ _config = _objectSpread2(_objectSpread2({}, _config), config);
}
var action = typeof config === 'string' ? config : _config.slide;
@@ -1723,7 +1690,7 @@
return;
}
- var config = _objectSpread2({}, Manipulator.getDataAttributes(target), {}, Manipulator.getDataAttributes(this));
+ var config = _objectSpread2(_objectSpread2({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this));
var slideIndex = this.getAttribute('data-slide-to');
@@ -1954,9 +1921,7 @@
var complete = function complete() {
_this._element.classList.remove(CLASS_NAME_COLLAPSING);
- _this._element.classList.add(CLASS_NAME_COLLAPSE);
-
- _this._element.classList.add(CLASS_NAME_SHOW);
+ _this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
_this._element.style[dimension] = '';
@@ -1993,9 +1958,7 @@
this._element.classList.add(CLASS_NAME_COLLAPSING);
- this._element.classList.remove(CLASS_NAME_COLLAPSE);
-
- this._element.classList.remove(CLASS_NAME_SHOW);
+ this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
var triggerArrayLength = this._triggerArray.length;
@@ -2044,7 +2007,7 @@
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default$1, {}, config);
+ config = _objectSpread2(_objectSpread2({}, Default$1), config);
config.toggle = Boolean(config.toggle); // Coerce string values
typeCheckConfig(NAME$3, config, DefaultType$1);
@@ -2102,9 +2065,9 @@
Collapse.collapseInterface = function collapseInterface(element, config) {
var data = Data.getData(element, DATA_KEY$3);
- var _config = _objectSpread2({}, Default$1, {}, Manipulator.getDataAttributes(element), {}, typeof config === 'object' && config ? config : {});
+ var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$1), Manipulator.getDataAttributes(element)), typeof config === 'object' && config ? config : {});
- if (!data && _config.toggle && /show|hide/.test(config)) {
+ if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
_config.toggle = false;
}
@@ -4826,19 +4789,14 @@
var DATA_KEY$4 = 'bs.dropdown';
var EVENT_KEY$4 = "." + DATA_KEY$4;
var DATA_API_KEY$4 = '.data-api';
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
-
- var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
-
- var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
-
- var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
-
- var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
-
- var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
-
- var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
+ var ESCAPE_KEY = 'Escape';
+ var SPACE_KEY = 'Space';
+ var TAB_KEY = 'Tab';
+ var ARROW_UP_KEY = 'ArrowUp';
+ var ARROW_DOWN_KEY = 'ArrowDown';
+ var RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button
+
+ var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEY + "|" + ARROW_DOWN_KEY + "|" + ESCAPE_KEY);
var EVENT_HIDE$1 = "hide" + EVENT_KEY$4;
var EVENT_HIDDEN$1 = "hidden" + EVENT_KEY$4;
var EVENT_SHOW$1 = "show" + EVENT_KEY$4;
@@ -4968,7 +4926,7 @@
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
- if ('ontouchstart' in document.documentElement && !SelectorEngine.closest(parent, SELECTOR_NAVBAR_NAV)) {
+ if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {
var _ref;
(_ref = []).concat.apply(_ref, document.body.children).forEach(function (elem) {
@@ -5043,7 +5001,7 @@
};
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, this.constructor.Default, {}, Manipulator.getDataAttributes(this._element), {}, config);
+ config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), Manipulator.getDataAttributes(this._element)), config);
typeCheckConfig(NAME$4, config, this.constructor.DefaultType);
return config;
};
@@ -5074,7 +5032,7 @@
};
_proto._detectNavbar = function _detectNavbar() {
- return Boolean(SelectorEngine.closest(this._element, "." + CLASS_NAME_NAVBAR));
+ return Boolean(this._element.closest("." + CLASS_NAME_NAVBAR));
};
_proto._getOffset = function _getOffset() {
@@ -5084,7 +5042,7 @@
if (typeof this._config.offset === 'function') {
offset.fn = function (data) {
- data.offsets = _objectSpread2({}, data.offsets, {}, _this2._config.offset(data.offsets, _this2._element) || {});
+ data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this2._config.offset(data.offsets, _this2._element) || {});
return data;
};
} else {
@@ -5114,7 +5072,7 @@
};
}
- return _objectSpread2({}, popperConfig, {}, this._config.popperConfig);
+ return _objectSpread2(_objectSpread2({}, popperConfig), this._config.popperConfig);
} // Static
;
@@ -5143,7 +5101,7 @@
};
Dropdown.clearMenus = function clearMenus(event) {
- if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
+ if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) {
return;
}
@@ -5170,7 +5128,7 @@
continue;
}
- if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && dropdownMenu.contains(event.target)) {
+ if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.key === TAB_KEY) && dropdownMenu.contains(event.target)) {
continue;
}
@@ -5214,7 +5172,7 @@
// - If key is other than escape
// - If key is not up or down => not a dropdown command
// - If trigger inside the menu => not a dropdown command
- if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || SelectorEngine.closest(event.target, SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.which)) {
+ if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) {
return;
}
@@ -5228,14 +5186,14 @@
var parent = Dropdown.getParentFromElement(this);
var isActive = this.classList.contains(CLASS_NAME_SHOW$1);
- if (event.which === ESCAPE_KEYCODE) {
+ if (event.key === ESCAPE_KEY) {
var button = this.matches(SELECTOR_DATA_TOGGLE$2) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$2)[0];
button.focus();
Dropdown.clearMenus();
return;
}
- if (!isActive || event.which === SPACE_KEYCODE) {
+ if (!isActive || event.key === SPACE_KEY) {
Dropdown.clearMenus();
return;
}
@@ -5246,18 +5204,20 @@
return;
}
- var index = items.indexOf(event.target) || 0;
+ var index = items.indexOf(event.target);
- if (event.which === ARROW_UP_KEYCODE && index > 0) {
+ if (event.key === ARROW_UP_KEY && index > 0) {
// Up
index--;
}
- if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
+ if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
// Down
index++;
- }
+ } // index is -1 if the first keydown is an ArrowUp
+
+ index = index === -1 ? 0 : index;
items[index].focus();
};
@@ -5335,8 +5295,7 @@
var DATA_KEY$5 = 'bs.modal';
var EVENT_KEY$5 = "." + DATA_KEY$5;
var DATA_API_KEY$5 = '.data-api';
- var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key
-
+ var ESCAPE_KEY$1 = 'Escape';
var Default$3 = {
backdrop: true,
keyboard: true,
@@ -5361,7 +5320,6 @@
var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY$5;
var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY$5;
var EVENT_CLICK_DATA_API$5 = "click" + EVENT_KEY$5 + DATA_API_KEY$5;
- var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';
var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
var CLASS_NAME_BACKDROP = 'modal-backdrop';
var CLASS_NAME_OPEN = 'modal-open';
@@ -5525,7 +5483,7 @@
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default$3, {}, config);
+ config = _objectSpread2(_objectSpread2({}, Default$3), config);
typeCheckConfig(NAME$5, config, DefaultType$3);
return config;
};
@@ -5548,10 +5506,10 @@
this._element.setAttribute('aria-modal', true);
- if (this._dialog.classList.contains(CLASS_NAME_SCROLLABLE) && modalBody) {
+ this._element.scrollTop = 0;
+
+ if (modalBody) {
modalBody.scrollTop = 0;
- } else {
- this._element.scrollTop = 0;
}
if (transition) {
@@ -5601,11 +5559,11 @@
if (this._isShown) {
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {
- if (_this5._config.keyboard && event.which === ESCAPE_KEYCODE$1) {
+ if (_this5._config.keyboard && event.key === ESCAPE_KEY$1) {
event.preventDefault();
_this5.hide();
- } else if (!_this5._config.keyboard && event.which === ESCAPE_KEYCODE$1) {
+ } else if (!_this5._config.keyboard && event.key === ESCAPE_KEY$1) {
_this5._triggerBackdropTransition();
}
});
@@ -5763,7 +5721,7 @@
_proto._checkScrollbar = function _checkScrollbar() {
var rect = document.body.getBoundingClientRect();
- this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
+ this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
this._scrollbarWidth = this._getScrollbarWidth();
};
@@ -5842,7 +5800,7 @@
return this.each(function () {
var data = Data.getData(this, DATA_KEY$5);
- var _config = _objectSpread2({}, Default$3, {}, Manipulator.getDataAttributes(this), {}, typeof config === 'object' && config ? config : {});
+ var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$3), Manipulator.getDataAttributes(this)), typeof config === 'object' && config ? config : {});
if (!data) {
data = new Modal(this, _config);
@@ -5909,7 +5867,7 @@
var data = Data.getData(target, DATA_KEY$5);
if (!data) {
- var config = _objectSpread2({}, Manipulator.getDataAttributes(target), {}, Manipulator.getDataAttributes(this));
+ var config = _objectSpread2(_objectSpread2({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this));
data = new Modal(target, config);
}
@@ -6193,11 +6151,11 @@
if (event) {
var dataKey = this.constructor.DATA_KEY;
- var context = Data.getData(event.delegateTarget, dataKey);
+ var context = Data.getData(event.target, dataKey);
if (!context) {
- context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
- Data.setData(event.delegateTarget, dataKey, context);
+ context = new this.constructor(event.target, this._getDelegateConfig());
+ Data.setData(event.target, dataKey, context);
}
context._activeTrigger.click = !context._activeTrigger.click;
@@ -6222,7 +6180,7 @@
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, "." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
+ EventHandler.off(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
if (this.tip) {
this.tip.parentNode.removeChild(this.tip);
@@ -6398,8 +6356,7 @@
_proto.setContent = function setContent() {
var tip = this.getTipElement();
this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle());
- tip.classList.remove(CLASS_NAME_FADE$1);
- tip.classList.remove(CLASS_NAME_SHOW$3);
+ tip.classList.remove(CLASS_NAME_FADE$1, CLASS_NAME_SHOW$3);
};
_proto.setElementContent = function setElementContent(element, content) {
@@ -6419,7 +6376,7 @@
element.appendChild(content);
}
} else {
- element.innerText = content.textContent;
+ element.textContent = content.textContent;
}
return;
@@ -6432,7 +6389,7 @@
element.innerHTML = content;
} else {
- element.innerText = content;
+ element.textContent = content;
}
};
@@ -6473,7 +6430,7 @@
return _this3._handlePopperPlacementChange(data);
}
};
- return _objectSpread2({}, defaultBsConfig, {}, this.config.popperConfig);
+ return _objectSpread2(_objectSpread2({}, defaultBsConfig), this.config.popperConfig);
};
_proto._addAttachmentClass = function _addAttachmentClass(attachment) {
@@ -6487,7 +6444,7 @@
if (typeof this.config.offset === 'function') {
offset.fn = function (data) {
- data.offsets = _objectSpread2({}, data.offsets, {}, _this4.config.offset(data.offsets, _this4.element) || {});
+ data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this4.config.offset(data.offsets, _this4.element) || {});
return data;
};
} else {
@@ -6540,10 +6497,10 @@
}
};
- EventHandler.on(SelectorEngine.closest(this.element, "." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
+ EventHandler.on(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
if (this.config.selector) {
- this.config = _objectSpread2({}, this.config, {
+ this.config = _objectSpread2(_objectSpread2({}, this.config), {}, {
trigger: 'manual',
selector: ''
});
@@ -6563,11 +6520,11 @@
_proto._enter = function _enter(event, context) {
var dataKey = this.constructor.DATA_KEY;
- context = context || Data.getData(event.delegateTarget, dataKey);
+ context = context || Data.getData(event.target, dataKey);
if (!context) {
- context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
- Data.setData(event.delegateTarget, dataKey, context);
+ context = new this.constructor(event.target, this._getDelegateConfig());
+ Data.setData(event.target, dataKey, context);
}
if (event) {
@@ -6596,11 +6553,11 @@
_proto._leave = function _leave(event, context) {
var dataKey = this.constructor.DATA_KEY;
- context = context || Data.getData(event.delegateTarget, dataKey);
+ context = context || Data.getData(event.target, dataKey);
if (!context) {
- context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
- Data.setData(event.delegateTarget, dataKey, context);
+ context = new this.constructor(event.target, this._getDelegateConfig());
+ Data.setData(event.target, dataKey, context);
}
if (event) {
@@ -6648,7 +6605,7 @@
config.container = config.container[0];
}
- config = _objectSpread2({}, this.constructor.Default, {}, dataAttributes, {}, typeof config === 'object' && config ? config : {});
+ config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), dataAttributes), typeof config === 'object' && config ? config : {});
if (typeof config.delay === 'number') {
config.delay = {
@@ -6828,14 +6785,14 @@
var CLASS_PREFIX$1 = 'bs-popover';
var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g');
- var Default$5 = _objectSpread2({}, Tooltip.Default, {
+ var Default$5 = _objectSpread2(_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 = _objectSpread2({}, Tooltip.DefaultType, {
+ var DefaultType$5 = _objectSpread2(_objectSpread2({}, Tooltip.DefaultType), {}, {
content: '(string|element|function)'
});
@@ -6887,8 +6844,7 @@
}
this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content);
- tip.classList.remove(CLASS_NAME_FADE$2);
- tip.classList.remove(CLASS_NAME_SHOW$4);
+ tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$4);
};
_proto._addAttachmentClass = function _addAttachmentClass(attachment) {
@@ -7124,9 +7080,9 @@
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default$6, {}, typeof config === 'object' && config ? config : {});
+ config = _objectSpread2(_objectSpread2({}, Default$6), typeof config === 'object' && config ? config : {});
- if (typeof config.target !== 'string') {
+ if (typeof config.target !== 'string' && isElement(config.target)) {
var id = config.target.id;
if (!id) {
@@ -7182,9 +7138,7 @@
return;
}
- var offsetLength = this._offsets.length;
-
- for (var i = offsetLength; i--;) {
+ for (var i = this._offsets.length; i--;) {
var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
if (isActiveTarget) {
@@ -7205,7 +7159,7 @@
var link = SelectorEngine.findOne(queries.join(','));
if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
- SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, SelectorEngine.closest(link, SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$2);
+ SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$2);
link.classList.add(CLASS_NAME_ACTIVE$2);
} else {
// Set triggered link as active
@@ -7362,7 +7316,8 @@
var previous;
var target = getElementFromSelector(this._element);
- var listElement = SelectorEngine.closest(this._element, SELECTOR_NAV_LIST_GROUP$1);
+
+ var listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP$1);
if (listElement) {
var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$2;
@@ -7458,7 +7413,7 @@
}
if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {
- var dropdownElement = SelectorEngine.closest(element, SELECTOR_DROPDOWN$1);
+ var dropdownElement = element.closest(SELECTOR_DROPDOWN$1);
if (dropdownElement) {
SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE$1).forEach(function (dropdown) {
@@ -7674,7 +7629,7 @@
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default$7, {}, Manipulator.getDataAttributes(this._element), {}, typeof config === 'object' && config ? config : {});
+ config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$7), Manipulator.getDataAttributes(this._element)), typeof config === 'object' && config ? config : {});
typeCheckConfig(NAME$a, config, this.constructor.DefaultType);
return config;
};
diff --git a/dist/js/bootstrap.bundle.js.map b/dist/js/bootstrap.bundle.js.map
index 6ab5a1ce2c..7719c5f4f9 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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = 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() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\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 element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n 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 isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\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 find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('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\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (_) {\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 find,\n findOne,\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 { getjQuery } from '../util/index'\nimport { defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst $ = getjQuery()\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.slice(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 && $) {\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 = new CustomEvent(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 } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n return [].concat(...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 = [].concat(...element.children)\n\n return children.filter(child => child.matches(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 element.closest(selector)\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\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_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\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 let parent = getElementFromSelector(element)\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif ($) {\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 { getjQuery } 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 CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"buttons\"]'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_BLUR_DATA_API = `blur${EVENT_KEY}${DATA_API_KEY}`\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 && input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains(CLASS_NAME_DISABLED) ||\n rootElement.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n input.checked = !this._element.classList.contains(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_FOCUS)\n }\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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'\n\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = 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 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(CLASS_NAME_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 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(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_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 = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_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 target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_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 = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\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_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = 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(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = 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(CLASS_NAME_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(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_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(WIDTH)\n return hasWidth ? WIDTH : 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 = `${SELECTOR_DATA_TOGGLE}[data-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\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(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_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 = 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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.16.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' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* 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\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['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.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\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, getReferenceNode(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, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\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 explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(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 getjQuery,\n getElementFromSelector,\n isElement,\n isVisible,\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'\n\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)\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n 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(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_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(this._element, 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 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(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !SelectorEngine.closest(parent, SELECTOR_NAVBAR_NAV)) {\n [].concat(...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, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_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 if (this._popper) {\n this._popper.destroy()\n }\n\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_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) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\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 return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = PLACEMENT_TOP\n if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_TOPEND\n }\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, `.${CLASS_NAME_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 {\n ...popperConfig,\n ...this._config.popperConfig\n }\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 = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = 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 (!toggles[i].classList.contains(CLASS_NAME_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 dropdownMenu.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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || 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(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.which === ESCAPE_KEYCODE) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.which === SPACE_KEYCODE) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent)\n .filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target) || 0\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 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\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(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.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(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (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) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else {\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(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n 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 this._triggerBackdropTransition()\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_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(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_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 _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._element)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\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 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 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(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n 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 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 = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.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 target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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\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,[\\d+/a-z]+=*$/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 SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\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', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\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 = [].concat(...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 = [].concat(...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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\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 popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"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 popperConfig: null\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 CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.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(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n 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, `.${CLASS_NAME_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) {\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(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n 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, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_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 [].concat(...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 === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_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 !== HOVER_STATE_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(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...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(CLASS_NAME_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(CLASS_NAME_FADE)\n tip.classList.remove(CLASS_NAME_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 _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${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 return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\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, `.${CLASS_NAME_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(CLASS_NAME_SHOW) ||\n context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || 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 = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = 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 > 0) {\n tabClass.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(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 { getjQuery } 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 Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\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 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(CLASS_NAME_FADE)\n tip.classList.remove(CLASS_NAME_SHOW)\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\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 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getSelectorFromElement,\n getUID,\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_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} .${CLASS_NAME_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 METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = 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(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(SELECTOR_DROPDOWN_TOGGLE, SelectorEngine.closest(link, SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = 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 SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\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_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\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(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = SelectorEngine.closest(this._element, SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = 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 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\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_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n 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(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n 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(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_HIDE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_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(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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","toType","obj","undefined","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","find","Element","prototype","querySelectorAll","findOne","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","scopeSelectorRegex","supportScopeQuery","_","hasId","Boolean","nodeList","replace","removeAttribute","matches","$","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","slice","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","NODE_TEXT","SelectorEngine","concat","findFn","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","previous","previousElementSibling","next","nextElementSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASSNAME_ALERT","CLASSNAME_FADE","CLASSNAME_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","CLASS_NAME_ACTIVE","CLASS_NAME_BUTTON","CLASS_NAME_DISABLED","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLE","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_FOCUS_DATA_API","EVENT_BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","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","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","_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","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_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","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_NAVBAR","CLASS_NAME_POSITION_STATIC","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","flip","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","clearMenus","getParentFromElement","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","modalTransitionDuration","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","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","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_MODAL","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","defaultBsConfig","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_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","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast"],"mappings":"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EACA;EACA;EACA;AACA;EACA;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;AACH;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;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;AACH;EACA;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;AACH;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,GAAG;AACH;EACA;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;AACH;EACA;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;AACH;EACA;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;AACH;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,GAAG;AACH;EACA;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;AACH;EACA;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;AACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA;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;AACrB;EACA;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,KAAK;AACtB;EACA;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,IAAI;AACrB;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE,KAAK;AACxB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;AAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;AAClC;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,SAAS;EACtB,CAAC,CAAC;AACF;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA,IAAI,MAAM,GAAG,YAAY;EACzB;EACA;EACA;E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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/alert.js","../../js/src/dom/selector-engine.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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = 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() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\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 element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n 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 isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\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 find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('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\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (_) {\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 find,\n findOne,\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 { getjQuery } from '../util/index'\nimport { defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst $ = getjQuery()\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\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 bootstrapHandler(element, fn) {\n return function handler(event) {\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 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.slice(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 && $) {\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 = new CustomEvent(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): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\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_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\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 return getElementFromSelector(element) || element.closest(`.${CLASSNAME_ALERT}`)\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif ($) {\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): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n return [].concat(...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 = [].concat(...element.children)\n\n return children.filter(child => child.matches(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 prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n }\n}\n\nexport default SelectorEngine\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 { getjQuery } 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 CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"buttons\"]'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_BLUR_DATA_API = `blur${EVENT_KEY}${DATA_API_KEY}`\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 = this._element.closest(SELECTOR_DATA_TOGGLE)\n\n if (rootElement) {\n const input = SelectorEngine.findOne(SELECTOR_INPUT, this._element)\n\n if (input && input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains(CLASS_NAME_DISABLED) ||\n rootElement.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n input.checked = !this._element.classList.contains(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(CLASS_NAME_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 const button = event.target.closest(SELECTOR_BUTTON)\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 = event.target.closest(SELECTOR_BUTTON)\n\n if (button) {\n button.classList.add(CLASS_NAME_FOCUS)\n }\n})\n\nEventHandler.on(document, EVENT_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = event.target.closest(SELECTOR_BUTTON)\n\n if (button) {\n button.classList.remove(CLASS_NAME_FOCUS)\n }\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\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 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(CLASS_NAME_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.key) {\n case ARROW_LEFT_KEY:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEY:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n 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(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_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 = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_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(CLASS_NAME_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, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, 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(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_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 target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_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 = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\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_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = 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(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = 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(CLASS_NAME_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(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_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(WIDTH)\n return hasWidth ? WIDTH : 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 = `${SELECTOR_DATA_TOGGLE}[data-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\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(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_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 && typeof config === 'string' && /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 = 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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.16.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' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* 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\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['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.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\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, getReferenceNode(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, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\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 explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(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 getjQuery,\n getElementFromSelector,\n isElement,\n isVisible,\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'\n\nconst ESCAPE_KEY = 'Escape'\nconst SPACE_KEY = 'Space'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n 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(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_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(this._element, 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 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(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...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, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_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 if (this._popper) {\n this._popper.destroy()\n }\n\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_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) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\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 return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = PLACEMENT_TOP\n if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_TOPEND\n }\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(this._element.closest(`.${CLASS_NAME_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 {\n ...popperConfig,\n ...this._config.popperConfig\n }\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.button === RIGHT_MOUSE_BUTTON ||\n (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = 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 (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && ((event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName)) ||\n (event.type === 'keyup' && event.key === TAB_KEY)) &&\n dropdownMenu.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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || 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.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent)\n .filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.key === ARROW_UP_KEY && index > 0) { // Up\n index--\n }\n\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) { // Down\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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_KEY = 'Escape'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.scrollTop = 0\n\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (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) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n 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 this._triggerBackdropTransition()\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_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(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_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 _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._element)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\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 = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n 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 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(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n 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 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 = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.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 target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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\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,[\\d+/a-z]+=*$/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 SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\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', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\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 = [].concat(...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 = [].concat(...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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\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 popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"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 popperConfig: null\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 CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.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.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, 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(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(this.element.closest(`.${CLASS_NAME_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) {\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(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n 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, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_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 [].concat(...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 === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_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 !== HOVER_STATE_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(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...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(CLASS_NAME_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(CLASS_NAME_FADE, CLASS_NAME_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.textContent = 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.textContent = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${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 return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\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(this.element.closest(`.${CLASS_NAME_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.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, 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(CLASS_NAME_SHOW) ||\n context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = 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 > 0) {\n tabClass.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(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 { getjQuery } 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 Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\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 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(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\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 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getSelectorFromElement,\n getUID,\n isElement,\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_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} .${CLASS_NAME_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 METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = 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' && isElement(config.target)) {\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 for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.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(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = 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 SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\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_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\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(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = 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 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\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_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n 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(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n 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(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_HIDE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_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(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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","toType","obj","undefined","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","find","Element","prototype","querySelectorAll","findOne","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","scopeSelectorRegex","supportScopeQuery","_","hasId","Boolean","nodeList","replace","removeAttribute","matches","$","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","bootstrapHandler","fn","handler","event","oneOff","EventHandler","off","type","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","slice","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASSNAME_ALERT","CLASSNAME_FADE","CLASSNAME_SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","closest","classList","remove","contains","_destroyElement","removeChild","jQueryInterface","each","handleDismiss","alertInstance","getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","NODE_TEXT","SelectorEngine","concat","findFn","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","previous","previousElementSibling","next","nextElementSibling","CLASS_NAME_ACTIVE","CLASS_NAME_DISABLED","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLE","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_FOCUS_DATA_API","EVENT_BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_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","parent","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_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_KEY","SPACE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_NAVBAR","CLASS_NAME_POSITION_STATIC","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","flip","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","clearMenus","getParentFromElement","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","modalTransitionDuration","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","round","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","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","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_MODAL","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","defaultBsConfig","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_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","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast"],"mappings":"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G,aAAa,CAAC,MAAM,CAAC,CAAC;AAC9C;EACA,EAAE,OAAO,IAAI,CAAC;EACd,CAAC;AACD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA;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;AACH;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;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;AACH;EACA;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;AACH;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,GAAG;AACH;EACA;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;AACH;EACA;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;AACH;EACA;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;AACH;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,GAAG;AACH;EACA;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;AACH;EACA;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;AACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA;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;AACrB;EACA;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,KAAK;AACtB;EACA;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,IAAI;AACrB;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE,KAAK;AACxB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;AAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;AAClC;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,SAAS;EACtB,CAAC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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 3a0b69746a..cca6b56d08 100644
--- a/dist/js/bootstrap.bundle.min.js
+++ b/dist/js/bootstrap.bundle.min.js
@@ -3,5 +3,5 @@
* Copyright 2011-2020 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,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(Object(o),!0).forEach((function(e){n(t,e,o[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):i(Object(o)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}))}return t}var r,s,a,l,c=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():null}return e},f=function(t){var e=u(t);return e&&document.querySelector(e)?e:null},h=function(t){var e=u(t);return e?document.querySelector(e):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},p=function(t){t.dispatchEvent(new Event("transitionend"))},g=function(t){return(t[0]||t).nodeType},m=function(t,e){var n=!1,i=e+5;t.addEventListener("transitionend",(function e(){n=!0,t.removeEventListener("transitionend",e)})),setTimeout((function(){n||p(t)}),i)},v=function(t,e,n){Object.keys(n).forEach((function(i){var o,r=n[i],s=e[i],a=s&&g(s)?"element":null==(o=s)?""+o:{}.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){if(!t)return!1;if(t.style&&t.parentNode&&t.parentNode.style){var e=getComputedStyle(t),n=getComputedStyle(t.parentNode);return"none"!==e.display&&"none"!==n.display&&"hidden"!==e.visibility}return!1},b=function(){return function(){}},y=function(t){return t.offsetHeight},w=function(){var t=window.jQuery;return t&&!document.body.hasAttribute("data-no-jquery")?t:null},E=(r={},s=1,{set:function(t,e,n){void 0===t.key&&(t.key={key:e,id:s},s++),r[t.key.id]=n},get:function(t,e){if(!t||void 0===t.key)return null;var n=t.key;return n.key===e?r[n.id]:null},delete:function(t,e){if(void 0!==t.key){var n=t.key;n.key===e&&(delete r[n.id],delete t.key)}}}),T=function(t,e,n){E.set(t,e,n)},L=function(t,e){return E.get(t,e)},k=function(t,e){E.delete(t,e)},O=Element.prototype.querySelectorAll,C=Element.prototype.querySelector,A=(a=new CustomEvent("Bootstrap",{cancelable:!0}),(l=document.createElement("div")).addEventListener("Bootstrap",(function(){return null})),a.preventDefault(),l.dispatchEvent(a),a.defaultPrevented),S=/:scope\b/;(function(){var t=document.createElement("div");try{t.querySelectorAll(":scope *")}catch(t){return!1}return!0})()||(O=function(t){if(!S.test(t))return this.querySelectorAll(t);var e=Boolean(this.id);e||(this.id=c("scope"));var n=null;try{t=t.replace(S,"#"+this.id),n=this.querySelectorAll(t)}finally{e||this.removeAttribute("id")}return n},C=function(t){if(!S.test(t))return this.querySelector(t);var e=O.call(this,t);return void 0!==e[0]?e[0]:null});var D=w(),x=/[^.]*(?=\..*)\.|.*/,N=/\..*/,I=/^key/,j=/::\d+$/,P={},M=1,H={mouseenter:"mouseover",mouseleave:"mouseout"},B=["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 R(t,e){return e&&e+"::"+M++||t.uidEvent||M++}function F(t){var e=R(t);return t.uidEvent=e,P[e]=P[e]||{},P[e]}function W(t,e){null===t.which&&I.test(t.type)&&(t.which=null===t.charCode?t.keyCode:t.charCode),t.delegateTarget=e}function U(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(N,""),s=H[r];return s&&(r=s),B.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=Q(e,n,i),s=r[0],a=r[1],l=r[2],c=F(t),u=c[l]||(c[l]={}),f=U(u,a,s?n:null);if(f)f.oneOff=f.oneOff&&o;else{var h=R(a,e.replace(x,"")),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 W(o,s),i.oneOff&&Y.off(t,o.type,n),n.apply(s,[o]);return null}}(t,n,i):function(t,e){return function n(i){return W(i,t),n.oneOff&&Y.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 q(t,e,n,i,o){var r=U(e[n],i,o);r&&(t.removeEventListener(n,r,Boolean(o)),delete e[n][r.uidEvent])}var Y={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=Q(e,n,i),r=o[0],s=o[1],a=o[2],l=a!==e,c=F(t),u="."===e.charAt(0);if(void 0===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];q(t,e,n,s.originalHandler,s.delegationSelector)}}))}(t,c,n,e.slice(1))}));var f=c[a]||{};Object.keys(f).forEach((function(n){var i=n.replace(j,"");if(!l||e.indexOf(i)>-1){var o=f[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(N,""),r=e!==o,s=B.indexOf(o)>-1,a=!0,l=!0,c=!1,u=null;return r&&D&&(i=D.Event(e,n),D(t).trigger(i),a=!i.isPropagationStopped(),l=!i.isImmediatePropagationStopped(),c=i.isDefaultPrevented()),s?(u=document.createEvent("HTMLEvents")).initEvent(o,a,!0):u=new CustomEvent(e,{bubbles:a,cancelable:!0}),void 0!==n&&Object.keys(n).forEach((function(t){Object.defineProperty(u,t,{get:function(){return n[t]}})})),c&&(u.preventDefault(),A||Object.defineProperty(u,"defaultPrevented",{get:function(){return!0}})),l&&t.dispatchEvent(u),u.defaultPrevented&&void 0!==i&&i.preventDefault(),u}},z={matches:function(t,e){return t.matches(e)},find:function(t,e){var n;return void 0===e&&(e=document.documentElement),(n=[]).concat.apply(n,O.call(e,t))},findOne:function(t,e){return void 0===e&&(e=document.documentElement),C.call(e,t)},children:function(t,e){var n,i=(n=[]).concat.apply(n,t.children);return i.filter((function(t){return t.matches(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 t.closest(e)},prev:function(t,e){for(var n=t.previousElementSibling;n;){if(n.matches(e))return[n];n=n.previousElementSibling}return[]},next:function(t,e){for(var n=t.nextElementSibling;n;){if(this.matches(n,e))return[n];n=n.nextElementSibling}return[]}},K="alert",X=function(){function t(t){this._element=t,this._element&&T(t,"bs.alert",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(){k(this._element,"bs.alert"),this._element=null},n._getRootElement=function(t){var e=h(t);return e||(e=z.closest(t,".alert")),e},n._triggerCloseEvent=function(t){return Y.trigger(t,"close.bs.alert")},n._removeElement=function(t){var e=this;if(t.classList.remove("show"),t.classList.contains("fade")){var n=d(t);Y.one(t,"transitionend",(function(){return e._destroyElement(t)})),m(t,n)}else this._destroyElement(t)},n._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),Y.trigger(t,"closed.bs.alert")},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.alert");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 L(t,"bs.alert")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();Y.on(document,"click.bs.alert.data-api",'[data-dismiss="alert"]',X.handleDismiss(new X));var G=w();if(G){var $=G.fn[K];G.fn[K]=X.jQueryInterface,G.fn[K].Constructor=X,G.fn[K].noConflict=function(){return G.fn[K]=$,X.jQueryInterface}}var Z=function(){function t(t){this._element=t,T(t,"bs.button",this)}var n=t.prototype;return n.toggle=function(){var t=!0,e=!0,n=z.closest(this._element,'[data-toggle="buttons"]');if(n){var i=z.findOne('input:not([type="hidden"])',this._element);if(i&&"radio"===i.type){if(i.checked&&this._element.classList.contains("active"))t=!1;else{var o=z.findOne(".active",n);o&&o.classList.remove("active")}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains("active"),Y.trigger(i,"change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains("active")),t&&this._element.classList.toggle("active")},n.dispose=function(){k(this._element,"bs.button"),this._element=null},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.button");n||(n=new t(this)),"toggle"===e&&n[e]()}))},t.getInstance=function(t){return L(t,"bs.button")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();Y.on(document,"click.bs.button.data-api",'[data-toggle^="button"]',(function(t){t.preventDefault();var e=t.target;e.classList.contains("btn")||(e=z.closest(e,".btn"));var n=L(e,"bs.button");n||(n=new Z(e)),n.toggle()})),Y.on(document,"focus.bs.button.data-api",'[data-toggle^="button"]',(function(t){var e=z.closest(t.target,".btn");e&&e.classList.add("focus")})),Y.on(document,"blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){var e=z.closest(t.target,".btn");e&&e.classList.remove("focus")}));var J=w();if(J){var tt=J.fn.button;J.fn.button=Z.jQueryInterface,J.fn.button.Constructor=Z,J.fn.button.noConflict=function(){return J.fn.button=tt,Z.jQueryInterface}}function et(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function nt(t){return t.replace(/[A-Z]/g,(function(t){return"-"+t.toLowerCase()}))}var it={setDataAttribute:function(t,e,n){t.setAttribute("data-"+nt(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+nt(e))},getDataAttributes:function(t){if(!t)return{};var e=o({},t.dataset);return Object.keys(e).forEach((function(t){e[t]=et(e[t])})),e},getDataAttribute:function(t,e){return et(t.getAttribute("data-"+nt(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))}},ot="carousel",rt=".bs.carousel",st={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},at={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},lt={TOUCH:"touch",PEN:"pen"},ct=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(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),T(t,"bs.carousel",this)}var n=t.prototype;return n.next=function(){this._isSliding||this._slide("next")},n.nextWhenVisible=function(){!document.hidden&&_(this._element)&&this.next()},n.prev=function(){this._isSliding||this._slide("prev")},n.pause=function(t){t||(this._isPaused=!0),z.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(p(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=z.findOne(".active.carousel-item",this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)Y.one(this._element,"slid.bs.carousel",(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?"next":"prev";this._slide(i,this._items[t])}},n.dispose=function(){Y.off(this._element,rt),k(this._element,"bs.carousel"),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({},st,{},t),v(ot,t,at),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&&Y.on(this._element,"keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&(Y.on(this._element,"mouseenter.bs.carousel",(function(e){return t.pause(e)})),Y.on(this._element,"mouseleave.bs.carousel",(function(e){return t.cycle(e)}))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},n._addTouchEventListeners=function(){var t=this,e=function(e){t._pointerEvent&&lt[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&lt[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))};z.find(".carousel-item img",this._element).forEach((function(t){Y.on(t,"dragstart.bs.carousel",(function(t){return t.preventDefault()}))})),this._pointerEvent?(Y.on(this._element,"pointerdown.bs.carousel",(function(t){return e(t)})),Y.on(this._element,"pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(Y.on(this._element,"touchstart.bs.carousel",(function(t){return e(t)})),Y.on(this._element,"touchmove.bs.carousel",(function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)})),Y.on(this._element,"touchend.bs.carousel",(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?z.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)},n._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+("prev"===t?-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(z.findOne(".active.carousel-item",this._element));return Y.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n})},n._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=z.find(".active",this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove("active");var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add("active")}},n._slide=function(t,e){var n,i,o,r=this,s=z.findOne(".active.carousel-item",this._element),a=this._getItemIndex(s),l=e||s&&this._getItemByDirection(t,s),c=this._getItemIndex(l),u=Boolean(this._interval);if("next"===t?(n="carousel-item-left",i="carousel-item-next",o="left"):(n="carousel-item-right",i="carousel-item-prev",o="right"),l&&l.classList.contains("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).defaultPrevented&&s&&l){if(this._isSliding=!0,u&&this.pause(),this._setActiveIndicatorElement(l),this._element.classList.contains("slide")){l.classList.add(i),y(l),s.classList.add(n),l.classList.add(n);var f=parseInt(l.getAttribute("data-interval"),10);f?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=f):this._config.interval=this._config.defaultInterval||this._config.interval;var h=d(s);Y.one(s,"transitionend",(function(){l.classList.remove(n),l.classList.remove(i),l.classList.add("active"),s.classList.remove("active"),s.classList.remove(i),s.classList.remove(n),r._isSliding=!1,setTimeout((function(){Y.trigger(r._element,"slid.bs.carousel",{relatedTarget:l,direction:o,from:a,to:c})}),0)})),m(s,h)}else s.classList.remove("active"),l.classList.add("active"),this._isSliding=!1,Y.trigger(this._element,"slid.bs.carousel",{relatedTarget:l,direction:o,from:a,to:c});u&&this.cycle()}},t.carouselInterface=function(e,n){var i=L(e,"bs.carousel"),r=o({},st,{},it.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(void 0===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=h(this);if(n&&n.classList.contains("carousel")){var i=o({},it.getDataAttributes(n),{},it.getDataAttributes(this)),r=this.getAttribute("data-slide-to");r&&(i.interval=!1),t.carouselInterface(n,i),r&&L(n,"bs.carousel").to(r),e.preventDefault()}},t.getInstance=function(t){return L(t,"bs.carousel")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return st}}]),t}();Y.on(document,"click.bs.carousel.data-api","[data-slide], [data-slide-to]",ct.dataApiClickHandler),Y.on(window,"load.bs.carousel.data-api",(function(){for(var t=z.find('[data-ride="carousel"]'),e=0,n=t.length;e<n;e++)ct.carouselInterface(t[e],L(t[e],"bs.carousel"))}));var ut=w();if(ut){var ft=ut.fn[ot];ut.fn[ot]=ct.jQueryInterface,ut.fn[ot].Constructor=ct,ut.fn[ot].noConflict=function(){return ut.fn[ot]=ft,ct.jQueryInterface}}var ht="collapse",dt={toggle:!0,parent:""},pt={toggle:"boolean",parent:"(string|element)"},gt=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=z.find('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]');for(var n=z.find('[data-toggle="collapse"]'),i=0,o=n.length;i<o;i++){var r=n[i],s=f(r),a=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(t,"bs.collapse",this)}var n=t.prototype;return n.toggle=function(){this._element.classList.contains("show")?this.hide():this.show()},n.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains("show")){var n,i;this._parent&&0===(n=z.find(".show, .collapsing",this._parent).filter((function(t){return"string"==typeof e._config.parent?t.getAttribute("data-parent")===e._config.parent:t.classList.contains("collapse")}))).length&&(n=null);var o=z.findOne(this._selector);if(n){var r=n.filter((function(t){return o!==t}));if((i=r[0]?L(r[0],"bs.collapse"):null)&&i._isTransitioning)return}if(!Y.trigger(this._element,"show.bs.collapse").defaultPrevented){n&&n.forEach((function(e){o!==e&&t.collapseInterface(e,"hide"),i||T(e,"bs.collapse",null)}));var s=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[s]=0,this._triggerArray.length&&this._triggerArray.forEach((function(t){t.classList.remove("collapsed"),t.setAttribute("aria-expanded",!0)})),this.setTransitioning(!0);var a="scroll"+(s[0].toUpperCase()+s.slice(1)),l=d(this._element);Y.one(this._element,"transitionend",(function(){e._element.classList.remove("collapsing"),e._element.classList.add("collapse"),e._element.classList.add("show"),e._element.style[s]="",e.setTransitioning(!1),Y.trigger(e._element,"shown.bs.collapse")})),m(this._element,l),this._element.style[s]=this._element[a]+"px"}}},n.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains("show")&&!Y.trigger(this._element,"hide.bs.collapse").defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",y(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse"),this._element.classList.remove("show");var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],r=h(o);r&&!r.classList.contains("show")&&(o.classList.add("collapsed"),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var s=d(this._element);Y.one(this._element,"transitionend",(function(){t.setTransitioning(!1),t._element.classList.remove("collapsing"),t._element.classList.add("collapse"),Y.trigger(t._element,"hidden.bs.collapse")})),m(this._element,s)}},n.setTransitioning=function(t){this._isTransitioning=t},n.dispose=function(){k(this._element,"bs.collapse"),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},n._getConfig=function(t){return(t=o({},dt,{},t)).toggle=Boolean(t.toggle),v(ht,t,pt),t},n._getDimension=function(){return this._element.classList.contains("width")?"width":"height"},n._getParent=function(){var t=this,e=this._config.parent;g(e)?void 0===e.jquery&&void 0===e[0]||(e=e[0]):e=z.findOne(e);var n='[data-toggle="collapse"][data-parent="'+e+'"]';return z.find(n,e).forEach((function(e){var n=h(e);t._addAriaAndCollapsedClass(n,[e])})),e},n._addAriaAndCollapsedClass=function(t,e){if(t){var n=t.classList.contains("show");e.length&&e.forEach((function(t){n?t.classList.remove("collapsed"):t.classList.add("collapsed"),t.setAttribute("aria-expanded",n)}))}},t.collapseInterface=function(e,n){var i=L(e,"bs.collapse"),r=o({},dt,{},it.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(void 0===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 L(t,"bs.collapse")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return dt}}]),t}();Y.on(document,"click.bs.collapse.data-api",'[data-toggle="collapse"]',(function(t){"A"===t.target.tagName&&t.preventDefault();var e=it.getDataAttributes(this),n=f(this);z.find(n).forEach((function(t){var n,i=L(t,"bs.collapse");i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,gt.collapseInterface(t,n)}))}));var mt=w();if(mt){var vt=mt.fn[ht];mt.fn[ht]=gt.jQueryInterface,mt.fn[ht].Constructor=gt,mt.fn[ht].noConflict=function(){return mt.fn[ht]=vt,gt.jQueryInterface}}var _t="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,bt=function(){for(var t=["Edge","Trident","Firefox"],e=0;e<t.length;e+=1)if(_t&&navigator.userAgent.indexOf(t[e])>=0)return 1;return 0}();var yt=_t&&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()}),bt))}};function wt(t){return t&&"[object Function]"==={}.toString.call(t)}function Et(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function Tt(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function Lt(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=Et(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:Lt(Tt(t))}function kt(t){return t&&t.referenceNode?t.referenceNode:t}var Ot=_t&&!(!window.MSInputMethodContext||!document.documentMode),Ct=_t&&/MSIE 10/.test(navigator.userAgent);function At(t){return 11===t?Ot:10===t?Ct:Ot||Ct}function St(t){if(!t)return document.documentElement;for(var e=At(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"===Et(n,"position")?St(n):n:t?t.ownerDocument.documentElement:document.documentElement}function Dt(t){return null!==t.parentNode?Dt(t.parentNode):t}function xt(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=r.commonAncestorContainer;if(t!==s&&e!==s||i.contains(o))return function(t){var e=t.nodeName;return"BODY"!==e&&("HTML"===e||St(t.firstElementChild)===t)}(s)?s:St(s);var a=Dt(t);return a.host?xt(a.host,e):xt(t,Dt(e).host)}function Nt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===e?"scrollTop":"scrollLeft",i=t.nodeName;if("BODY"===i||"HTML"===i){var o=t.ownerDocument.documentElement,r=t.ownerDocument.scrollingElement||o;return r[n]}return t[n]}function It(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=Nt(e,"top"),o=Nt(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}function jt(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 Pt(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],At(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function Mt(t){var e=t.body,n=t.documentElement,i=At(10)&&getComputedStyle(n);return{height:Pt("Height",e,n,i),width:Pt("Width",e,n,i)}}var Ht=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Bt=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}}(),Rt=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},Ft=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 Wt(t){return Ft({},t,{right:t.left+t.width,bottom:t.top+t.height})}function Ut(t){var e={};try{if(At(10)){e=t.getBoundingClientRect();var n=Nt(t,"top"),i=Nt(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?Mt(t.ownerDocument):{},s=r.width||t.clientWidth||o.width,a=r.height||t.clientHeight||o.height,l=t.offsetWidth-s,c=t.offsetHeight-a;if(l||c){var u=Et(t);l-=jt(u,"x"),c-=jt(u,"y"),o.width-=l,o.height-=c}return Wt(o)}function Qt(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=At(10),o="HTML"===e.nodeName,r=Ut(t),s=Ut(e),a=Lt(t),l=Et(e),c=parseFloat(l.borderTopWidth,10),u=parseFloat(l.borderLeftWidth,10);n&&o&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var f=Wt({top:r.top-s.top-c,left:r.left-s.left-u,width:r.width,height:r.height});if(f.marginTop=0,f.marginLeft=0,!i&&o){var h=parseFloat(l.marginTop,10),d=parseFloat(l.marginLeft,10);f.top-=c-h,f.bottom-=c-h,f.left-=u-d,f.right-=u-d,f.marginTop=h,f.marginLeft=d}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(f=It(f,e)),f}function Vt(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=Qt(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:Nt(n),a=e?0:Nt(n,"left"),l={top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:r};return Wt(l)}function qt(t){var e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===Et(t,"position"))return!0;var n=Tt(t);return!!n&&qt(n)}function Yt(t){if(!t||!t.parentElement||At())return document.documentElement;for(var e=t.parentElement;e&&"none"===Et(e,"transform");)e=e.parentElement;return e||document.documentElement}function zt(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=o?Yt(t):xt(t,kt(e));if("viewport"===i)r=Vt(s,o);else{var a=void 0;"scrollParent"===i?"BODY"===(a=Lt(Tt(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=Qt(a,s,o);if("HTML"!==a.nodeName||qt(s))r=l;else{var c=Mt(t.ownerDocument),u=c.height,f=c.width;r.top+=l.top-l.marginTop,r.bottom=u+l.top,r.left+=l.left-l.marginLeft,r.right=f+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 Kt(t){return t.width*t.height}function Xt(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=zt(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 Ft({key:t},a[t],{area:Kt(a[t])})})).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})),u=c.length>0?c[0].key:l[0].key,f=t.split("-")[1];return u+(f?"-"+f:"")}function Gt(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=i?Yt(e):xt(e,kt(n));return Qt(n,o,i)}function $t(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 Zt(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 Jt(t,e,n){n=n.split("-")[0];var i=$t(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[Zt(a)],o}function te(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function ee(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=te(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&&wt(n)&&(e.offsets.popper=Wt(e.offsets.popper),e.offsets.reference=Wt(e.offsets.reference),e=n(e,t))})),e}function ne(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=Gt(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=Xt(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=Jt(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=ee(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function ie(t,e){return t.some((function(t){var n=t.name;return t.enabled&&n===e}))}function oe(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(void 0!==document.body.style[r])return r}return null}function re(){return this.state.isDestroyed=!0,ie(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[oe("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function se(t){var e=t.ownerDocument;return e?e.defaultView:window}function ae(t,e,n,i){n.updateBound=i,se(t).addEventListener("resize",n.updateBound,{passive:!0});var o=Lt(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(Lt(s.parentNode),n,i,o),o.push(s)}(o,"scroll",n.updateBound,n.scrollParents),n.scrollElement=o,n.eventsEnabled=!0,n}function le(){this.state.eventsEnabled||(this.state=ae(this.reference,this.options,this.state,this.scheduleUpdate))}function ce(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,se(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 fe(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 he=_t&&/Firefox/i.test(navigator.userAgent);function de(t,e,n){var i=te(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 pe=["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=pe.slice(3);function me(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 ve="flip",_e="clockwise",be="counterclockwise";function ye(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(te(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 Wt(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 we={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",u={start:Rt({},l,r[l]),end:Rt({},l,r[l]+r[c]-s[c])};t.offsets.popper=Ft({},s,u[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]:ye(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||St(t.instance.popper);t.instance.reference===n&&(n=St(n));var i=oe("transform"),o=t.instance.popper.style,r=o.top,s=o.left,a=o[i];o.top="",o.left="",o[i]="";var l=zt(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,u=t.offsets.popper,f={primary:function(t){var n=u[t];return u[t]<l[t]&&!e.escapeWithReference&&(n=Math.max(u[t],l[t])),Rt({},t,n)},secondary:function(t){var n="right"===t?"left":"top",i=u[n];return u[t]>l[t]&&!e.escapeWithReference&&(i=Math.min(u[n],l[t]-("right"===t?u.width:u.height))),Rt({},n,i)}};return c.forEach((function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";u=Ft({},u,f[e](t))})),t.offsets.popper=u,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(!de(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",u=l?"Top":"Left",f=u.toLowerCase(),h=l?"left":"top",d=l?"bottom":"right",p=$t(i)[c];a[d]-p<s[f]&&(t.offsets.popper[f]-=s[f]-(a[d]-p)),a[f]+p>s[d]&&(t.offsets.popper[f]+=a[f]+p-s[d]),t.offsets.popper=Wt(t.offsets.popper);var g=a[f]+a[c]/2-p/2,m=Et(t.instance.popper),v=parseFloat(m["margin"+u],10),_=parseFloat(m["border"+u+"Width"],10),b=g-t.offsets.popper[f]-v-_;return b=Math.max(Math.min(s[c]-p,b),0),t.arrowElement=i,t.offsets.arrow=(Rt(n={},f,Math.round(b)),Rt(n,h,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(ie(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=zt(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=Zt(i),r=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case ve:s=[i,o];break;case _e:s=me(i);break;case be:s=me(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=Zt(i);var c=t.offsets.popper,u=t.offsets.reference,f=Math.floor,h="left"===i&&f(c.right)>f(u.left)||"right"===i&&f(c.left)<f(u.right)||"top"===i&&f(c.bottom)>f(u.top)||"bottom"===i&&f(c.top)<f(u.bottom),d=f(c.left)<f(n.left),p=f(c.right)>f(n.right),g=f(c.top)<f(n.top),m=f(c.bottom)>f(n.bottom),v="left"===i&&d||"right"===i&&p||"top"===i&&g||"bottom"===i&&m,_=-1!==["top","bottom"].indexOf(i),b=!!e.flipVariations&&(_&&"start"===r&&d||_&&"end"===r&&p||!_&&"start"===r&&g||!_&&"end"===r&&m),y=!!e.flipVariationsByContent&&(_&&"start"===r&&p||_&&"end"===r&&d||!_&&"start"===r&&m||!_&&"end"===r&&g),w=b||y;(h||v||w)&&(t.flipped=!0,(h||v)&&(i=s[l+1]),w&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=i+(r?"-"+r:""),t.offsets.popper=Ft({},t.offsets.popper,Jt(t.instance.popper,t.offsets.reference,t.placement)),t=ee(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=Zt(e),t.offsets.popper=Wt(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!de(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=te(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=te(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=St(t.instance.popper),l=Ut(a),c={position:o.position},u=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),u=-1!==["left","right"].indexOf(t.placement),f=-1!==t.placement.indexOf("-"),h=e?u||f||l%2==c%2?r:s:a,d=e?r:a;return{left:h(l%2==1&&c%2==1&&!f&&e?i.left-1:i.left),top:d(i.top),bottom:d(i.bottom),right:h(i.right)}}(t,window.devicePixelRatio<2||!he),f="bottom"===n?"top":"bottom",h="right"===i?"left":"right",d=oe("transform"),p=void 0,g=void 0;if(g="bottom"===f?"HTML"===a.nodeName?-a.clientHeight+u.bottom:-l.height+u.bottom:u.top,p="right"===h?"HTML"===a.nodeName?-a.clientWidth+u.right:-l.width+u.right:u.left,s&&d)c[d]="translate3d("+p+"px, "+g+"px, 0)",c[f]=0,c[h]=0,c.willChange="transform";else{var m="bottom"===f?-1:1,v="right"===h?-1:1;c[f]=g*m,c[h]=p*v,c.willChange=f+", "+h}var _={"x-placement":t.placement};return t.attributes=Ft({},_,t.attributes),t.styles=Ft({},c,t.styles),t.arrowStyles=Ft({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){return fe(t.instance.popper,t.styles),function(t,e){Object.keys(e).forEach((function(n){!1!==e[n]?t.setAttribute(n,e[n]):t.removeAttribute(n)}))}(t.instance.popper,t.attributes),t.arrowElement&&Object.keys(t.arrowStyles).length&&fe(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){var r=Gt(o,e,t,n.positionFixed),s=Xt(n.placement,r,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),fe(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},Ee=function(){function t(e,n){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Ht(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=yt(this.update.bind(this)),this.options=Ft({},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(Ft({},t.Defaults.modifiers,o.modifiers)).forEach((function(e){i.options.modifiers[e]=Ft({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(t){return Ft({name:t},i.options.modifiers[t])})).sort((function(t,e){return t.order-e.order})),this.modifiers.forEach((function(t){t.enabled&&wt(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 Bt(t,[{key:"update",value:function(){return ne.call(this)}},{key:"destroy",value:function(){return re.call(this)}},{key:"enableEventListeners",value:function(){return le.call(this)}},{key:"disableEventListeners",value:function(){return ce.call(this)}}]),t}();Ee.Utils=("undefined"!=typeof window?window:global).PopperUtils,Ee.placements=pe,Ee.Defaults=we;var Te="dropdown",Le=new RegExp("38|40|27"),ke={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},Oe={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},Ce=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(),T(t,"bs.dropdown",this)}var n=t.prototype;return n.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains("disabled")){var e=this._element.classList.contains("show");t.clearMenus(),e||this.show()}},n.show=function(){if(!(this._element.disabled||this._element.classList.contains("disabled")||this._menu.classList.contains("show"))){var e=t.getParentFromElement(this._element),n={relatedTarget:this._element};if(!Y.trigger(this._element,"show.bs.dropdown",n).defaultPrevented){if(!this._inNavbar){if(void 0===Ee)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var i=this._element;"parent"===this._config.reference?i=e:g(this._config.reference)&&(i=this._config.reference,void 0!==this._config.reference.jquery&&(i=this._config.reference[0])),"scrollParent"!==this._config.boundary&&e.classList.add("position-static"),this._popper=new Ee(i,this._menu,this._getPopperConfig())}var o;if("ontouchstart"in document.documentElement&&!z.closest(e,".navbar-nav"))(o=[]).concat.apply(o,document.body.children).forEach((function(t){return Y.on(t,"mouseover",null,(function(){}))}));this._element.focus(),this._element.setAttribute("aria-expanded",!0),it.toggleClass(this._menu,"show"),it.toggleClass(this._element,"show"),Y.trigger(e,"shown.bs.dropdown",n)}}},n.hide=function(){if(!this._element.disabled&&!this._element.classList.contains("disabled")&&this._menu.classList.contains("show")){var e=t.getParentFromElement(this._element),n={relatedTarget:this._element};Y.trigger(e,"hide.bs.dropdown",n).defaultPrevented||(this._popper&&this._popper.destroy(),it.toggleClass(this._menu,"show"),it.toggleClass(this._element,"show"),Y.trigger(e,"hidden.bs.dropdown",n))}},n.dispose=function(){k(this._element,"bs.dropdown"),Y.off(this._element,".bs.dropdown"),this._element=null,this._menu=null,this._popper&&(this._popper.destroy(),this._popper=null)},n.update=function(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.scheduleUpdate()},n._addEventListeners=function(){var t=this;Y.on(this._element,"click.bs.dropdown",(function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}))},n._getConfig=function(t){return t=o({},this.constructor.Default,{},it.getDataAttributes(this._element),{},t),v(Te,t,this.constructor.DefaultType),t},n._getMenuElement=function(){return z.next(this._element,".dropdown-menu")[0]},n._getPlacement=function(){var t=this._element.parentNode,e="bottom-start";return t.classList.contains("dropup")?(e="top-start",this._menu.classList.contains("dropdown-menu-right")&&(e="top-end")):t.classList.contains("dropright")?e="right-start":t.classList.contains("dropleft")?e="left-start":this._menu.classList.contains("dropdown-menu-right")&&(e="bottom-end"),e},n._detectNavbar=function(){return Boolean(z.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}),o({},t,{},this._config.popperConfig)},t.dropdownInterface=function(e,n){var i=L(e,"bs.dropdown");if(i||(i=new t(e,"object"==typeof n?n:null)),"string"==typeof n){if(void 0===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=z.find('[data-toggle="dropdown"]'),i=0,o=n.length;i<o;i++){var r=t.getParentFromElement(n[i]),s=L(n[i],"bs.dropdown"),a={relatedTarget:n[i]};if(e&&"click"===e.type&&(a.clickEvent=e),s){var l=s._menu;if(n[i].classList.contains("show"))if(!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&l.contains(e.target)))if(!Y.trigger(r,"hide.bs.dropdown",a).defaultPrevented){var c;if("ontouchstart"in document.documentElement)(c=[]).concat.apply(c,document.body.children).forEach((function(t){return Y.off(t,"mouseover",null,(function(){}))}));n[i].setAttribute("aria-expanded","false"),s._popper&&s._popper.destroy(),l.classList.remove("show"),n[i].classList.remove("show"),Y.trigger(r,"hidden.bs.dropdown",a)}}}},t.getParentFromElement=function(t){return h(t)||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||z.closest(e.target,".dropdown-menu")):!Le.test(e.which))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!this.classList.contains("disabled"))){var n=t.getParentFromElement(this),i=this.classList.contains("show");if(27===e.which)return(this.matches('[data-toggle="dropdown"]')?this:z.prev(this,'[data-toggle="dropdown"]')[0]).focus(),void t.clearMenus();if(i&&32!==e.which){var o=z.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",n).filter(_);if(o.length){var r=o.indexOf(e.target)||0;38===e.which&&r>0&&r--,40===e.which&&r<o.length-1&&r++,o[r].focus()}}else t.clearMenus()}},t.getInstance=function(t){return L(t,"bs.dropdown")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return ke}},{key:"DefaultType",get:function(){return Oe}}]),t}();Y.on(document,"keydown.bs.dropdown.data-api",'[data-toggle="dropdown"]',Ce.dataApiKeydownHandler),Y.on(document,"keydown.bs.dropdown.data-api",".dropdown-menu",Ce.dataApiKeydownHandler),Y.on(document,"click.bs.dropdown.data-api",Ce.clearMenus),Y.on(document,"keyup.bs.dropdown.data-api",Ce.clearMenus),Y.on(document,"click.bs.dropdown.data-api",'[data-toggle="dropdown"]',(function(t){t.preventDefault(),t.stopPropagation(),Ce.dropdownInterface(this,"toggle")})),Y.on(document,"click.bs.dropdown.data-api",".dropdown form",(function(t){return t.stopPropagation()}));var Ae=w();if(Ae){var Se=Ae.fn[Te];Ae.fn[Te]=Ce.jQueryInterface,Ae.fn[Te].Constructor=Ce,Ae.fn[Te].noConflict=function(){return Ae.fn[Te]=Se,Ce.jQueryInterface}}var De={backdrop:!0,keyboard:!0,focus:!0,show:!0},xe={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Ne=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=z.findOne(".modal-dialog",t),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,T(t,"bs.modal",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("fade")&&(this._isTransitioning=!0);var n=Y.trigger(this._element,"show.bs.modal",{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),Y.on(this._element,"click.dismiss.bs.modal",'[data-dismiss="modal"]',(function(t){return e.hide(t)})),Y.on(this._dialog,"mousedown.dismiss.bs.modal",(function(){Y.one(e._element,"mouseup.dismiss.bs.modal",(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)&&!Y.trigger(this._element,"hide.bs.modal").defaultPrevented){this._isShown=!1;var n=this._element.classList.contains("fade");if(n&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),Y.off(document,"focusin.bs.modal"),this._element.classList.remove("show"),Y.off(this._element,"click.dismiss.bs.modal"),Y.off(this._dialog,"mousedown.dismiss.bs.modal"),n){var i=d(this._element);Y.one(this._element,"transitionend",(function(t){return e._hideModal(t)})),m(this._element,i)}else this._hideModal()}},n.dispose=function(){[window,this._element,this._dialog].forEach((function(t){return Y.off(t,".bs.modal")})),Y.off(document,"focusin.bs.modal"),k(this._element,"bs.modal"),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({},De,{},t),v("modal",t,xe),t},n._showElement=function(t){var e=this,n=this._element.classList.contains("fade"),i=z.findOne(".modal-body",this._dialog);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("modal-dialog-scrollable")&&i?i.scrollTop=0:this._element.scrollTop=0,n&&y(this._element),this._element.classList.add("show"),this._config.focus&&this._enforceFocus();var o=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,Y.trigger(e._element,"shown.bs.modal",{relatedTarget:t})};if(n){var r=d(this._dialog);Y.one(this._dialog,"transitionend",o),m(this._dialog,r)}else o()},n._enforceFocus=function(){var t=this;Y.off(document,"focusin.bs.modal"),Y.on(document,"focusin.bs.modal",(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?Y.on(this._element,"keydown.dismiss.bs.modal",(function(e){t._config.keyboard&&27===e.which?(e.preventDefault(),t.hide()):t._config.keyboard||27!==e.which||t._triggerBackdropTransition()})):Y.off(this._element,"keydown.dismiss.bs.modal")},n._setResizeEvent=function(){var t=this;this._isShown?Y.on(window,"resize.bs.modal",(function(){return t._adjustDialog()})):Y.off(window,"resize.bs.modal")},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("modal-open"),t._resetAdjustments(),t._resetScrollbar(),Y.trigger(t._element,"hidden.bs.modal")}))},n._removeBackdrop=function(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null},n._showBackdrop=function(t){var e=this,n=this._element.classList.contains("fade")?"fade":"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),Y.on(this._element,"click.dismiss.bs.modal",(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&e._triggerBackdropTransition()})),n&&y(this._backdrop),this._backdrop.classList.add("show"),!n)return void t();var i=d(this._backdrop);Y.one(this._backdrop,"transitionend",t),m(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove("show");var o=function(){e._removeBackdrop(),t()};if(this._element.classList.contains("fade")){var r=d(this._backdrop);Y.one(this._backdrop,"transitionend",o),m(this._backdrop,r)}else o()}else t()},n._triggerBackdropTransition=function(){var t=this;if("static"===this._config.backdrop){if(Y.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;this._element.classList.add("modal-static");var e=d(this._element);Y.one(this._element,"transitionend",(function(){t._element.classList.remove("modal-static")})),m(this._element,e),this._element.focus()}else this.hide()},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){z.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];it.setDataAttribute(e,"padding-right",n),e.style.paddingRight=parseFloat(i)+t._scrollbarWidth+"px"})),z.find(".sticky-top").forEach((function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];it.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"];it.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add("modal-open")},n._resetScrollbar=function(){z.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(t){var e=it.getDataAttribute(t,"padding-right");void 0!==e&&(it.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)})),z.find(".sticky-top").forEach((function(t){var e=it.getDataAttribute(t,"margin-right");void 0!==e&&(it.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)}));var t=it.getDataAttribute(document.body,"padding-right");void 0===t?document.body.style.paddingRight="":(it.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},n._getScrollbarWidth=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",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=L(this,"bs.modal"),r=o({},De,{},it.getDataAttributes(this),{},"object"==typeof e&&e?e:{});if(i||(i=new t(this,r)),"string"==typeof e){if(void 0===i[e])throw new TypeError('No method named "'+e+'"');i[e](n)}else r.show&&i.show(n)}))},t.getInstance=function(t){return L(t,"bs.modal")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return De}}]),t}();Y.on(document,"click.bs.modal.data-api",'[data-toggle="modal"]',(function(t){var e=this,n=h(this);"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),Y.one(n,"show.bs.modal",(function(t){t.defaultPrevented||Y.one(n,"hidden.bs.modal",(function(){_(e)&&e.focus()}))}));var i=L(n,"bs.modal");if(!i){var r=o({},it.getDataAttributes(n),{},it.getDataAttributes(this));i=new Ne(n,r)}i.show(this)}));var Ie=w();if(Ie){var je=Ie.fn.modal;Ie.fn.modal=Ne.jQueryInterface,Ie.fn.modal.Constructor=Ne,Ie.fn.modal.noConflict=function(){return Ie.fn.modal=je,Ne.jQueryInterface}}var Pe=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Me=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,He=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Be={"*":["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","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function Re(t,e,n){var i;if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var o=(new window.DOMParser).parseFromString(t,"text/html"),r=Object.keys(e),s=(i=[]).concat.apply(i,o.body.querySelectorAll("*")),a=function(t,n){var i,o=s[t],a=o.nodeName.toLowerCase();if(-1===r.indexOf(a))return o.parentNode.removeChild(o),"continue";var l=(i=[]).concat.apply(i,o.attributes),c=[].concat(e["*"]||[],e[a]||[]);l.forEach((function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Pe.indexOf(n)||(Me.test(t.nodeValue)||He.test(t.nodeValue));for(var i=e.filter((function(t){return t instanceof RegExp})),o=0,r=i.length;o<r;o++)if(i[o].test(n))return!0;return!1})(t,c)||o.removeAttribute(t.nodeName)}))},l=0,c=s.length;l<c;l++)a(l);return o.body.innerHTML}var Fe="tooltip",We=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Ue=["sanitize","whiteList","sanitizeFn"],Qe={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",popperConfig:"(null|object)"},Ve={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},qe={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:Be,popperConfig:null},Ye={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"},ze=function(){function t(t,e){if(void 0===Ee)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(),T(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=L(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),T(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("show"))return void this._leave(null,this);this._enter(null,this)}},n.dispose=function(){clearTimeout(this._timeout),k(this.element,this.constructor.DATA_KEY),Y.off(this.element,this.constructor.EVENT_KEY),Y.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,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=Y.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("fade");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 l,u=this._getContainer();if(T(o,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||u.appendChild(o),Y.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new Ee(this.element,o,this._getPopperConfig(a)),o.classList.add("show"),"ontouchstart"in document.documentElement)(l=[]).concat.apply(l,document.body.children).forEach((function(t){Y.on(t,"mouseover",(function(){}))}));var f=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,Y.trigger(t.element,t.constructor.Event.SHOWN),"out"===e&&t._leave(null,t)};if(this.tip.classList.contains("fade")){var h=d(this.tip);Y.one(this.tip,"transitionend",f),m(this.tip,h)}else f()}},n.hide=function(){var t=this,e=this.getTipElement(),n=function(){"show"!==t._hoverState&&e.parentNode&&e.parentNode.removeChild(e),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),Y.trigger(t.element,t.constructor.Event.HIDDEN),t._popper.destroy()};if(!Y.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){var i;if(e.classList.remove("show"),"ontouchstart"in document.documentElement)(i=[]).concat.apply(i,document.body.children).forEach((function(t){return Y.off(t,"mouseover",b)}));if(this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this.tip.classList.contains("fade")){var o=d(e);Y.one(e,"transitionend",n),m(e,o)}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(z.findOne(".tooltip-inner",t),this.getTitle()),t.classList.remove("fade"),t.classList.remove("show")},n.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&g(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=Re(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._getPopperConfig=function(t){var e=this;return o({},{placement:t,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)}},{},this.config.popperConfig)},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:g(this.config.container)?this.config.container:z.findOne(this.config.container)},n._getAttachment=function(t){return Ve[t.toUpperCase()]},n._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)Y.on(t.element,t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n="hover"===e?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i="hover"===e?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;Y.on(t.element,n,t.config.selector,(function(e){return t._enter(e)})),Y.on(t.element,i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},Y.on(z.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||L(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),T(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){"show"===e._hoverState&&e.show()}),e.config.delay.show):e.show())},n._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||L(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),T(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){"out"===e._hoverState&&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=it.getDataAttributes(this.element);return Object.keys(e).forEach((function(t){-1!==Ue.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()),v(Fe,t,this.constructor.DefaultType),t.sanitize&&(t.template=Re(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(We);null!==e&&e.length>0&&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("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.tooltip"),i="object"==typeof e&&e;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,i)),"string"==typeof e)){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t.getInstance=function(t){return L(t,"bs.tooltip")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return qe}},{key:"NAME",get:function(){return Fe}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return Ye}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Qe}}]),t}(),Ke=w();if(Ke){var Xe=Ke.fn[Fe];Ke.fn[Fe]=ze.jQueryInterface,Ke.fn[Fe].Constructor=ze,Ke.fn[Fe].noConflict=function(){return Ke.fn[Fe]=Xe,ze.jQueryInterface}}var Ge="popover",$e=new RegExp("(^|\\s)bs-popover\\S+","g"),Ze=o({},ze.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>'}),Je=o({},ze.DefaultType,{content:"(string|element|function)"}),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"},en=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.setContent=function(){var t=this.getTipElement();this.setElementContent(z.findOne(".popover-header",t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(z.findOne(".popover-body",t),e),t.classList.remove("fade"),t.classList.remove("show")},r._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match($e);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=L(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),T(this,"bs.popover",e)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},o.getInstance=function(t){return L(t,"bs.popover")},e(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ze}},{key:"NAME",get:function(){return Ge}},{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 Je}}]),o}(ze),nn=w();if(nn){var on=nn.fn[Ge];nn.fn[Ge]=en.jQueryInterface,nn.fn[Ge].Constructor=en,nn.fn[Ge].noConflict=function(){return nn.fn[Ge]=on,en.jQueryInterface}}var rn="scrollspy",sn={offset:10,method:"auto",target:""},an={offset:"number",method:"string",target:"(string|element)"},ln=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+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,Y.on(this._scrollElement,"scroll.bs.scrollspy",(function(t){return n._process(t)})),this.refresh(),this._process(),T(t,"bs.scrollspy",this)}var n=t.prototype;return n.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":"position",n="auto"===this._config.method?e:this._config.method,i="position"===n?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),z.find(this._selector).map((function(t){var e,o=f(t);if(o&&(e=z.findOne(o)),e){var r=e.getBoundingClientRect();if(r.width||r.height)return[it[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(){k(this._element,"bs.scrollspy"),Y.off(this._scrollElement,".bs.scrollspy"),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({},sn,{},"object"==typeof t&&t?t:{})).target){var e=t.target.id;e||(e=c(rn),t.target.id=e),t.target="#"+e}return v(rn,t,an),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]&&(void 0===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=z.findOne(e.join(","));n.classList.contains("dropdown-item")?(z.findOne(".dropdown-toggle",z.closest(n,".dropdown")).classList.add("active"),n.classList.add("active")):(n.classList.add("active"),z.parents(n,".nav, .list-group").forEach((function(t){z.prev(t,".nav-link, .list-group-item").forEach((function(t){return t.classList.add("active")})),z.prev(t,".nav-item").forEach((function(t){z.children(t,".nav-link").forEach((function(t){return t.classList.add("active")}))}))}))),Y.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})},n._clear=function(){z.find(this._selector).filter((function(t){return t.classList.contains("active")})).forEach((function(t){return t.classList.remove("active")}))},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.scrollspy");if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t.getInstance=function(t){return L(t,"bs.scrollspy")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return sn}}]),t}();Y.on(window,"load.bs.scrollspy.data-api",(function(){z.find('[data-spy="scroll"]').forEach((function(t){return new ln(t,it.getDataAttributes(t))}))}));var cn=w();if(cn){var un=cn.fn[rn];cn.fn[rn]=ln.jQueryInterface,cn.fn[rn].Constructor=ln,cn.fn[rn].noConflict=function(){return cn.fn[rn]=un,ln.jQueryInterface}}var fn=function(){function t(t){this._element=t,T(this._element,"bs.tab",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("active")||this._element.classList.contains("disabled"))){var e,n=h(this._element),i=z.closest(this._element,".nav, .list-group");if(i){var o="UL"===i.nodeName||"OL"===i.nodeName?":scope > li > .active":".active";e=(e=z.find(o,i))[e.length-1]}var r=null;if(e&&(r=Y.trigger(e,"hide.bs.tab",{relatedTarget:this._element})),!(Y.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==r&&r.defaultPrevented)){this._activate(this._element,i);var s=function(){Y.trigger(e,"hidden.bs.tab",{relatedTarget:t._element}),Y.trigger(t._element,"shown.bs.tab",{relatedTarget:e})};n?this._activate(n,n.parentNode,s):s()}}},n.dispose=function(){k(this._element,"bs.tab"),this._element=null},n._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?z.children(e,".active"):z.find(":scope > li > .active",e))[0],r=n&&o&&o.classList.contains("fade"),s=function(){return i._transitionComplete(t,o,n)};if(o&&r){var a=d(o);o.classList.remove("show"),Y.one(o,"transitionend",s),m(o,a)}else s()},n._transitionComplete=function(t,e,n){if(e){e.classList.remove("active");var i=z.findOne(":scope > .dropdown-menu .active",e.parentNode);i&&i.classList.remove("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),y(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&t.parentNode.classList.contains("dropdown-menu"))&&(z.closest(t,".dropdown")&&z.find(".dropdown-toggle").forEach((function(t){return t.classList.add("active")})),t.setAttribute("aria-expanded",!0));n&&n()},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.tab")||new t(this);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t.getInstance=function(t){return L(t,"bs.tab")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();Y.on(document,"click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),(L(this,"bs.tab")||new fn(this)).show()}));var hn=w();if(hn){var dn=hn.fn.tab;hn.fn.tab=fn.jQueryInterface,hn.fn.tab.Constructor=fn,hn.fn.tab.noConflict=function(){return hn.fn.tab=dn,fn.jQueryInterface}}var pn={animation:"boolean",autohide:"boolean",delay:"number"},gn={animation:!0,autohide:!0,delay:500},mn=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),T(t,"bs.toast",this)}var n=t.prototype;return n.show=function(){var t=this;if(!Y.trigger(this._element,"show.bs.toast").defaultPrevented){this._config.animation&&this._element.classList.add("fade");var e=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),Y.trigger(t._element,"shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),y(this._element),this._element.classList.add("showing"),this._config.animation){var n=d(this._element);Y.one(this._element,"transitionend",e),m(this._element,n)}else e()}},n.hide=function(){var t=this;if(this._element.classList.contains("show")&&!Y.trigger(this._element,"hide.bs.toast").defaultPrevented){var e=function(){t._element.classList.add("hide"),Y.trigger(t._element,"hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var n=d(this._element);Y.one(this._element,"transitionend",e),m(this._element,n)}else e()}},n.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains("show")&&this._element.classList.remove("show"),Y.off(this._element,"click.dismiss.bs.toast"),k(this._element,"bs.toast"),this._element=null,this._config=null},n._getConfig=function(t){return t=o({},gn,{},it.getDataAttributes(this._element),{},"object"==typeof t&&t?t:{}),v("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;Y.on(this._element,"click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.toast");if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e](this)}}))},t.getInstance=function(t){return L(t,"bs.toast")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return pn}},{key:"Default",get:function(){return gn}}]),t}(),vn=w();if(vn){var _n=vn.fn.toast;vn.fn.toast=mn.jQueryInterface,vn.fn.toast.Constructor=mn,vn.fn.toast.noConflict=function(){return vn.fn.toast=_n,mn.jQueryInterface}}return{Alert:X,Button:Z,Carousel:ct,Collapse:gt,Dropdown:Ce,Modal:Ne,Popover:en,ScrollSpy:ln,Tab:fn,Toast:mn,Tooltip:ze}}));
+!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(Object(o),!0).forEach((function(e){n(t,e,o[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(o)):i(Object(o)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(o,e))}))}return t}var r,s,a,l,c=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():null}return e},f=function(t){var e=u(t);return e&&document.querySelector(e)?e:null},d=function(t){var e=u(t);return e?document.querySelector(e):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},p=function(t){t.dispatchEvent(new Event("transitionend"))},g=function(t){return(t[0]||t).nodeType},m=function(t,e){var n=!1,i=e+5;t.addEventListener("transitionend",(function e(){n=!0,t.removeEventListener("transitionend",e)})),setTimeout((function(){n||p(t)}),i)},v=function(t,e,n){Object.keys(n).forEach((function(i){var o,r=n[i],s=e[i],a=s&&g(s)?"element":null==(o=s)?""+o:{}.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){if(!t)return!1;if(t.style&&t.parentNode&&t.parentNode.style){var e=getComputedStyle(t),n=getComputedStyle(t.parentNode);return"none"!==e.display&&"none"!==n.display&&"hidden"!==e.visibility}return!1},b=function(){return function(){}},y=function(t){return t.offsetHeight},w=function(){var t=window.jQuery;return t&&!document.body.hasAttribute("data-no-jquery")?t:null},E=(r={},s=1,{set:function(t,e,n){void 0===t.key&&(t.key={key:e,id:s},s++),r[t.key.id]=n},get:function(t,e){if(!t||void 0===t.key)return null;var n=t.key;return n.key===e?r[n.id]:null},delete:function(t,e){if(void 0!==t.key){var n=t.key;n.key===e&&(delete r[n.id],delete t.key)}}}),T=function(t,e,n){E.set(t,e,n)},L=function(t,e){return E.get(t,e)},k=function(t,e){E.delete(t,e)},O=Element.prototype.querySelectorAll,C=Element.prototype.querySelector,A=(a=new CustomEvent("Bootstrap",{cancelable:!0}),(l=document.createElement("div")).addEventListener("Bootstrap",(function(){return null})),a.preventDefault(),l.dispatchEvent(a),a.defaultPrevented),D=/:scope\b/;(function(){var t=document.createElement("div");try{t.querySelectorAll(":scope *")}catch(t){return!1}return!0})()||(O=function(t){if(!D.test(t))return this.querySelectorAll(t);var e=Boolean(this.id);e||(this.id=c("scope"));var n=null;try{t=t.replace(D,"#"+this.id),n=this.querySelectorAll(t)}finally{e||this.removeAttribute("id")}return n},C=function(t){if(!D.test(t))return this.querySelector(t);var e=O.call(this,t);return void 0!==e[0]?e[0]:null});var S=w(),x=/[^.]*(?=\..*)\.|.*/,N=/\..*/,I=/::\d+$/,j={},P=1,M={mouseenter:"mouseover",mouseleave:"mouseout"},H=["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 B(t,e){return e&&e+"::"+P++||t.uidEvent||P++}function R(t){var e=B(t);return t.uidEvent=e,j[e]=j[e]||{},j[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 W(t,e,n){var i="string"==typeof e,o=i?n:e,r=t.replace(N,""),s=M[r];return s&&(r=s),H.indexOf(r)>-1||(r=t),[i,o,r]}function U(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var r=W(e,n,i),s=r[0],a=r[1],l=r[2],c=R(t),u=c[l]||(c[l]={}),f=F(u,a,s?n:null);if(f)f.oneOff=f.oneOff&&o;else{var d=B(a,e.replace(x,"")),h=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 i.oneOff&&V.off(t,o.type,n),n.apply(s,[o]);return null}}(t,n,i):function(t,e){return function n(i){return n.oneOff&&V.off(t,i.type,e),e.apply(t,[i])}}(t,n);h.delegationSelector=s?n:null,h.originalHandler=a,h.oneOff=o,h.uidEvent=d,u[d]=h,t.addEventListener(l,h,s)}}}function Q(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 V={on:function(t,e,n,i){U(t,e,n,i,!1)},one:function(t,e,n,i){U(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=W(e,n,i),r=o[0],s=o[1],a=o[2],l=a!==e,c=R(t),u="."===e.charAt(0);if(void 0===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];Q(t,e,n,s.originalHandler,s.delegationSelector)}}))}(t,c,n,e.slice(1))}));var f=c[a]||{};Object.keys(f).forEach((function(n){var i=n.replace(I,"");if(!l||e.indexOf(i)>-1){var o=f[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(N,""),r=e!==o,s=H.indexOf(o)>-1,a=!0,l=!0,c=!1,u=null;return r&&S&&(i=S.Event(e,n),S(t).trigger(i),a=!i.isPropagationStopped(),l=!i.isImmediatePropagationStopped(),c=i.isDefaultPrevented()),s?(u=document.createEvent("HTMLEvents")).initEvent(o,a,!0):u=new CustomEvent(e,{bubbles:a,cancelable:!0}),void 0!==n&&Object.keys(n).forEach((function(t){Object.defineProperty(u,t,{get:function(){return n[t]}})})),c&&(u.preventDefault(),A||Object.defineProperty(u,"defaultPrevented",{get:function(){return!0}})),l&&t.dispatchEvent(u),u.defaultPrevented&&void 0!==i&&i.preventDefault(),u}},q="alert",Y=function(){function t(t){this._element=t,this._element&&T(t,"bs.alert",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(){k(this._element,"bs.alert"),this._element=null},n._getRootElement=function(t){return d(t)||t.closest(".alert")},n._triggerCloseEvent=function(t){return V.trigger(t,"close.bs.alert")},n._removeElement=function(t){var e=this;if(t.classList.remove("show"),t.classList.contains("fade")){var n=h(t);V.one(t,"transitionend",(function(){return e._destroyElement(t)})),m(t,n)}else this._destroyElement(t)},n._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),V.trigger(t,"closed.bs.alert")},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.alert");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 L(t,"bs.alert")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();V.on(document,"click.bs.alert.data-api",'[data-dismiss="alert"]',Y.handleDismiss(new Y));var z=w();if(z){var K=z.fn[q];z.fn[q]=Y.jQueryInterface,z.fn[q].Constructor=Y,z.fn[q].noConflict=function(){return z.fn[q]=K,Y.jQueryInterface}}var X={matches:function(t,e){return t.matches(e)},find:function(t,e){var n;return void 0===e&&(e=document.documentElement),(n=[]).concat.apply(n,O.call(e,t))},findOne:function(t,e){return void 0===e&&(e=document.documentElement),C.call(e,t)},children:function(t,e){var n,i=(n=[]).concat.apply(n,t.children);return i.filter((function(t){return t.matches(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},prev:function(t,e){for(var n=t.previousElementSibling;n;){if(n.matches(e))return[n];n=n.previousElementSibling}return[]},next:function(t,e){for(var n=t.nextElementSibling;n;){if(this.matches(n,e))return[n];n=n.nextElementSibling}return[]}},G=function(){function t(t){this._element=t,T(t,"bs.button",this)}var n=t.prototype;return n.toggle=function(){var t=!0,e=!0,n=this._element.closest('[data-toggle="buttons"]');if(n){var i=X.findOne('input:not([type="hidden"])',this._element);if(i&&"radio"===i.type){if(i.checked&&this._element.classList.contains("active"))t=!1;else{var o=X.findOne(".active",n);o&&o.classList.remove("active")}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains("active"),V.trigger(i,"change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains("active")),t&&this._element.classList.toggle("active")},n.dispose=function(){k(this._element,"bs.button"),this._element=null},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.button");n||(n=new t(this)),"toggle"===e&&n[e]()}))},t.getInstance=function(t){return L(t,"bs.button")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();V.on(document,"click.bs.button.data-api",'[data-toggle^="button"]',(function(t){t.preventDefault();var e=t.target.closest(".btn"),n=L(e,"bs.button");n||(n=new G(e)),n.toggle()})),V.on(document,"focus.bs.button.data-api",'[data-toggle^="button"]',(function(t){var e=t.target.closest(".btn");e&&e.classList.add("focus")})),V.on(document,"blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){var e=t.target.closest(".btn");e&&e.classList.remove("focus")}));var $=w();if($){var Z=$.fn.button;$.fn.button=G.jQueryInterface,$.fn.button.Constructor=G,$.fn.button.noConflict=function(){return $.fn.button=Z,G.jQueryInterface}}function J(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function tt(t){return t.replace(/[A-Z]/g,(function(t){return"-"+t.toLowerCase()}))}var et={setDataAttribute:function(t,e,n){t.setAttribute("data-"+tt(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+tt(e))},getDataAttributes:function(t){if(!t)return{};var e=o({},t.dataset);return Object.keys(e).forEach((function(t){e[t]=J(e[t])})),e},getDataAttribute:function(t,e){return J(t.getAttribute("data-"+tt(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))}},nt="carousel",it=".bs.carousel",ot={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},rt={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},st={TOUCH:"touch",PEN:"pen"},at=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(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners(),T(t,"bs.carousel",this)}var n=t.prototype;return n.next=function(){this._isSliding||this._slide("next")},n.nextWhenVisible=function(){!document.hidden&&_(this._element)&&this.next()},n.prev=function(){this._isSliding||this._slide("prev")},n.pause=function(t){t||(this._isPaused=!0),X.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(p(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(".active.carousel-item",this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)V.one(this._element,"slid.bs.carousel",(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?"next":"prev";this._slide(i,this._items[t])}},n.dispose=function(){V.off(this._element,it),k(this._element,"bs.carousel"),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(o({},ot),t),v(nt,t,rt),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&&V.on(this._element,"keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&(V.on(this._element,"mouseenter.bs.carousel",(function(e){return t.pause(e)})),V.on(this._element,"mouseleave.bs.carousel",(function(e){return t.cycle(e)}))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},n._addTouchEventListeners=function(){var t=this,e=function(e){t._pointerEvent&&st[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&st[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(".carousel-item img",this._element).forEach((function(t){V.on(t,"dragstart.bs.carousel",(function(t){return t.preventDefault()}))})),this._pointerEvent?(V.on(this._element,"pointerdown.bs.carousel",(function(t){return e(t)})),V.on(this._element,"pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(V.on(this._element,"touchstart.bs.carousel",(function(t){return e(t)})),V.on(this._element,"touchmove.bs.carousel",(function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)})),V.on(this._element,"touchend.bs.carousel",(function(t){return n(t)})))},n._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.key){case"ArrowLeft":t.preventDefault(),this.prev();break;case"ArrowRight":t.preventDefault(),this.next()}},n._getItemIndex=function(t){return this._items=t&&t.parentNode?X.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)},n._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+("prev"===t?-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(".active.carousel-item",this._element));return V.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n})},n._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=X.find(".active",this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove("active");var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add("active")}},n._slide=function(t,e){var n,i,o,r=this,s=X.findOne(".active.carousel-item",this._element),a=this._getItemIndex(s),l=e||s&&this._getItemByDirection(t,s),c=this._getItemIndex(l),u=Boolean(this._interval);if("next"===t?(n="carousel-item-left",i="carousel-item-next",o="left"):(n="carousel-item-right",i="carousel-item-prev",o="right"),l&&l.classList.contains("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).defaultPrevented&&s&&l){if(this._isSliding=!0,u&&this.pause(),this._setActiveIndicatorElement(l),this._element.classList.contains("slide")){l.classList.add(i),y(l),s.classList.add(n),l.classList.add(n);var f=parseInt(l.getAttribute("data-interval"),10);f?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=f):this._config.interval=this._config.defaultInterval||this._config.interval;var d=h(s);V.one(s,"transitionend",(function(){l.classList.remove(n,i),l.classList.add("active"),s.classList.remove("active",i,n),r._isSliding=!1,setTimeout((function(){V.trigger(r._element,"slid.bs.carousel",{relatedTarget:l,direction:o,from:a,to:c})}),0)})),m(s,d)}else s.classList.remove("active"),l.classList.add("active"),this._isSliding=!1,V.trigger(this._element,"slid.bs.carousel",{relatedTarget:l,direction:o,from:a,to:c});u&&this.cycle()}},t.carouselInterface=function(e,n){var i=L(e,"bs.carousel"),r=o(o({},ot),et.getDataAttributes(e));"object"==typeof n&&(r=o(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(void 0===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=d(this);if(n&&n.classList.contains("carousel")){var i=o(o({},et.getDataAttributes(n)),et.getDataAttributes(this)),r=this.getAttribute("data-slide-to");r&&(i.interval=!1),t.carouselInterface(n,i),r&&L(n,"bs.carousel").to(r),e.preventDefault()}},t.getInstance=function(t){return L(t,"bs.carousel")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return ot}}]),t}();V.on(document,"click.bs.carousel.data-api","[data-slide], [data-slide-to]",at.dataApiClickHandler),V.on(window,"load.bs.carousel.data-api",(function(){for(var t=X.find('[data-ride="carousel"]'),e=0,n=t.length;e<n;e++)at.carouselInterface(t[e],L(t[e],"bs.carousel"))}));var lt=w();if(lt){var ct=lt.fn[nt];lt.fn[nt]=at.jQueryInterface,lt.fn[nt].Constructor=at,lt.fn[nt].noConflict=function(){return lt.fn[nt]=ct,at.jQueryInterface}}var ut="collapse",ft={toggle:!0,parent:""},dt={toggle:"boolean",parent:"(string|element)"},ht=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('[data-toggle="collapse"]'),i=0,o=n.length;i<o;i++){var r=n[i],s=f(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(),T(t,"bs.collapse",this)}var n=t.prototype;return n.toggle=function(){this._element.classList.contains("show")?this.hide():this.show()},n.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains("show")){var n,i;this._parent&&0===(n=X.find(".show, .collapsing",this._parent).filter((function(t){return"string"==typeof e._config.parent?t.getAttribute("data-parent")===e._config.parent:t.classList.contains("collapse")}))).length&&(n=null);var o=X.findOne(this._selector);if(n){var r=n.filter((function(t){return o!==t}));if((i=r[0]?L(r[0],"bs.collapse"):null)&&i._isTransitioning)return}if(!V.trigger(this._element,"show.bs.collapse").defaultPrevented){n&&n.forEach((function(e){o!==e&&t.collapseInterface(e,"hide"),i||T(e,"bs.collapse",null)}));var s=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[s]=0,this._triggerArray.length&&this._triggerArray.forEach((function(t){t.classList.remove("collapsed"),t.setAttribute("aria-expanded",!0)})),this.setTransitioning(!0);var a="scroll"+(s[0].toUpperCase()+s.slice(1)),l=h(this._element);V.one(this._element,"transitionend",(function(){e._element.classList.remove("collapsing"),e._element.classList.add("collapse","show"),e._element.style[s]="",e.setTransitioning(!1),V.trigger(e._element,"shown.bs.collapse")})),m(this._element,l),this._element.style[s]=this._element[a]+"px"}}},n.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains("show")&&!V.trigger(this._element,"hide.bs.collapse").defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",y(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],r=d(o);r&&!r.classList.contains("show")&&(o.classList.add("collapsed"),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var s=h(this._element);V.one(this._element,"transitionend",(function(){t.setTransitioning(!1),t._element.classList.remove("collapsing"),t._element.classList.add("collapse"),V.trigger(t._element,"hidden.bs.collapse")})),m(this._element,s)}},n.setTransitioning=function(t){this._isTransitioning=t},n.dispose=function(){k(this._element,"bs.collapse"),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},n._getConfig=function(t){return(t=o(o({},ft),t)).toggle=Boolean(t.toggle),v(ut,t,dt),t},n._getDimension=function(){return this._element.classList.contains("width")?"width":"height"},n._getParent=function(){var t=this,e=this._config.parent;g(e)?void 0===e.jquery&&void 0===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=d(e);t._addAriaAndCollapsedClass(n,[e])})),e},n._addAriaAndCollapsedClass=function(t,e){if(t){var n=t.classList.contains("show");e.length&&e.forEach((function(t){n?t.classList.remove("collapsed"):t.classList.add("collapsed"),t.setAttribute("aria-expanded",n)}))}},t.collapseInterface=function(e,n){var i=L(e,"bs.collapse"),r=o(o(o({},ft),et.getDataAttributes(e)),"object"==typeof n&&n?n:{});if(!i&&r.toggle&&"string"==typeof n&&/show|hide/.test(n)&&(r.toggle=!1),i||(i=new t(e,r)),"string"==typeof n){if(void 0===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 L(t,"bs.collapse")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return ft}}]),t}();V.on(document,"click.bs.collapse.data-api",'[data-toggle="collapse"]',(function(t){"A"===t.target.tagName&&t.preventDefault();var e=et.getDataAttributes(this),n=f(this);X.find(n).forEach((function(t){var n,i=L(t,"bs.collapse");i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,ht.collapseInterface(t,n)}))}));var pt=w();if(pt){var gt=pt.fn[ut];pt.fn[ut]=ht.jQueryInterface,pt.fn[ut].Constructor=ht,pt.fn[ut].noConflict=function(){return pt.fn[ut]=gt,ht.jQueryInterface}}var mt="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,vt=function(){for(var t=["Edge","Trident","Firefox"],e=0;e<t.length;e+=1)if(mt&&navigator.userAgent.indexOf(t[e])>=0)return 1;return 0}();var _t=mt&&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()}),vt))}};function bt(t){return t&&"[object Function]"==={}.toString.call(t)}function yt(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function wt(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function Et(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=yt(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:Et(wt(t))}function Tt(t){return t&&t.referenceNode?t.referenceNode:t}var Lt=mt&&!(!window.MSInputMethodContext||!document.documentMode),kt=mt&&/MSIE 10/.test(navigator.userAgent);function Ot(t){return 11===t?Lt:10===t?kt:Lt||kt}function Ct(t){if(!t)return document.documentElement;for(var e=Ot(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"===yt(n,"position")?Ct(n):n:t?t.ownerDocument.documentElement:document.documentElement}function At(t){return null!==t.parentNode?At(t.parentNode):t}function Dt(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=r.commonAncestorContainer;if(t!==s&&e!==s||i.contains(o))return function(t){var e=t.nodeName;return"BODY"!==e&&("HTML"===e||Ct(t.firstElementChild)===t)}(s)?s:Ct(s);var a=At(t);return a.host?Dt(a.host,e):Dt(t,At(e).host)}function St(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top",n="top"===e?"scrollTop":"scrollLeft",i=t.nodeName;if("BODY"===i||"HTML"===i){var o=t.ownerDocument.documentElement,r=t.ownerDocument.scrollingElement||o;return r[n]}return t[n]}function xt(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=St(e,"top"),o=St(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}function Nt(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 It(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],Ot(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function jt(t){var e=t.body,n=t.documentElement,i=Ot(10)&&getComputedStyle(n);return{height:It("Height",e,n,i),width:It("Width",e,n,i)}}var Pt=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Mt=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}}(),Ht=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},Bt=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 Rt(t){return Bt({},t,{right:t.left+t.width,bottom:t.top+t.height})}function Ft(t){var e={};try{if(Ot(10)){e=t.getBoundingClientRect();var n=St(t,"top"),i=St(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?jt(t.ownerDocument):{},s=r.width||t.clientWidth||o.width,a=r.height||t.clientHeight||o.height,l=t.offsetWidth-s,c=t.offsetHeight-a;if(l||c){var u=yt(t);l-=Nt(u,"x"),c-=Nt(u,"y"),o.width-=l,o.height-=c}return Rt(o)}function Wt(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=Ot(10),o="HTML"===e.nodeName,r=Ft(t),s=Ft(e),a=Et(t),l=yt(e),c=parseFloat(l.borderTopWidth,10),u=parseFloat(l.borderLeftWidth,10);n&&o&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var f=Rt({top:r.top-s.top-c,left:r.left-s.left-u,width:r.width,height:r.height});if(f.marginTop=0,f.marginLeft=0,!i&&o){var d=parseFloat(l.marginTop,10),h=parseFloat(l.marginLeft,10);f.top-=c-d,f.bottom-=c-d,f.left-=u-h,f.right-=u-h,f.marginTop=d,f.marginLeft=h}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(f=xt(f,e)),f}function Ut(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=Wt(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:St(n),a=e?0:St(n,"left"),l={top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:r};return Rt(l)}function Qt(t){var e=t.nodeName;if("BODY"===e||"HTML"===e)return!1;if("fixed"===yt(t,"position"))return!0;var n=wt(t);return!!n&&Qt(n)}function Vt(t){if(!t||!t.parentElement||Ot())return document.documentElement;for(var e=t.parentElement;e&&"none"===yt(e,"transform");)e=e.parentElement;return e||document.documentElement}function qt(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=o?Vt(t):Dt(t,Tt(e));if("viewport"===i)r=Ut(s,o);else{var a=void 0;"scrollParent"===i?"BODY"===(a=Et(wt(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=Wt(a,s,o);if("HTML"!==a.nodeName||Qt(s))r=l;else{var c=jt(t.ownerDocument),u=c.height,f=c.width;r.top+=l.top-l.marginTop,r.bottom=u+l.top,r.left+=l.left-l.marginLeft,r.right=f+l.left}}var d="number"==typeof(n=n||0);return r.left+=d?n:n.left||0,r.top+=d?n:n.top||0,r.right-=d?n:n.right||0,r.bottom-=d?n:n.bottom||0,r}function Yt(t){return t.width*t.height}function zt(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=qt(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 Bt({key:t},a[t],{area:Yt(a[t])})})).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})),u=c.length>0?c[0].key:l[0].key,f=t.split("-")[1];return u+(f?"-"+f:"")}function Kt(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=i?Vt(e):Dt(e,Tt(n));return Wt(n,o,i)}function Xt(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 Gt(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 $t(t,e,n){n=n.split("-")[0];var i=Xt(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[Gt(a)],o}function Zt(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function Jt(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=Zt(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&&bt(n)&&(e.offsets.popper=Rt(e.offsets.popper),e.offsets.reference=Rt(e.offsets.reference),e=n(e,t))})),e}function te(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=Kt(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=zt(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=$t(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=Jt(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}function ee(t,e){return t.some((function(t){var n=t.name;return t.enabled&&n===e}))}function ne(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(void 0!==document.body.style[r])return r}return null}function ie(){return this.state.isDestroyed=!0,ee(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[ne("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}function oe(t){var e=t.ownerDocument;return e?e.defaultView:window}function re(t,e,n,i){n.updateBound=i,oe(t).addEventListener("resize",n.updateBound,{passive:!0});var o=Et(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(Et(s.parentNode),n,i,o),o.push(s)}(o,"scroll",n.updateBound,n.scrollParents),n.scrollElement=o,n.eventsEnabled=!0,n}function se(){this.state.eventsEnabled||(this.state=re(this.reference,this.options,this.state,this.scheduleUpdate))}function ae(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,oe(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 le(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function ce(t,e){Object.keys(e).forEach((function(n){var i="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&le(e[n])&&(i="px"),t.style[n]=e[n]+i}))}var ue=mt&&/Firefox/i.test(navigator.userAgent);function fe(t,e,n){var i=Zt(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 de=["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"],he=de.slice(3);function pe(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=he.indexOf(t),i=he.slice(n+1).concat(he.slice(0,n));return e?i.reverse():i}var ge="flip",me="clockwise",ve="counterclockwise";function _e(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(Zt(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 Rt(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){le(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))}))})),o}var be={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",u={start:Ht({},l,r[l]),end:Ht({},l,r[l]+r[c]-s[c])};t.offsets.popper=Bt({},s,u[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=le(+n)?[+n,0]:_e(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||Ct(t.instance.popper);t.instance.reference===n&&(n=Ct(n));var i=ne("transform"),o=t.instance.popper.style,r=o.top,s=o.left,a=o[i];o.top="",o.left="",o[i]="";var l=qt(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,u=t.offsets.popper,f={primary:function(t){var n=u[t];return u[t]<l[t]&&!e.escapeWithReference&&(n=Math.max(u[t],l[t])),Ht({},t,n)},secondary:function(t){var n="right"===t?"left":"top",i=u[n];return u[t]>l[t]&&!e.escapeWithReference&&(i=Math.min(u[n],l[t]-("right"===t?u.width:u.height))),Ht({},n,i)}};return c.forEach((function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";u=Bt({},u,f[e](t))})),t.offsets.popper=u,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(!fe(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",u=l?"Top":"Left",f=u.toLowerCase(),d=l?"left":"top",h=l?"bottom":"right",p=Xt(i)[c];a[h]-p<s[f]&&(t.offsets.popper[f]-=s[f]-(a[h]-p)),a[f]+p>s[h]&&(t.offsets.popper[f]+=a[f]+p-s[h]),t.offsets.popper=Rt(t.offsets.popper);var g=a[f]+a[c]/2-p/2,m=yt(t.instance.popper),v=parseFloat(m["margin"+u],10),_=parseFloat(m["border"+u+"Width"],10),b=g-t.offsets.popper[f]-v-_;return b=Math.max(Math.min(s[c]-p,b),0),t.arrowElement=i,t.offsets.arrow=(Ht(n={},f,Math.round(b)),Ht(n,d,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(ee(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=qt(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=Gt(i),r=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case ge:s=[i,o];break;case me:s=pe(i);break;case ve:s=pe(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=Gt(i);var c=t.offsets.popper,u=t.offsets.reference,f=Math.floor,d="left"===i&&f(c.right)>f(u.left)||"right"===i&&f(c.left)<f(u.right)||"top"===i&&f(c.bottom)>f(u.top)||"bottom"===i&&f(c.top)<f(u.bottom),h=f(c.left)<f(n.left),p=f(c.right)>f(n.right),g=f(c.top)<f(n.top),m=f(c.bottom)>f(n.bottom),v="left"===i&&h||"right"===i&&p||"top"===i&&g||"bottom"===i&&m,_=-1!==["top","bottom"].indexOf(i),b=!!e.flipVariations&&(_&&"start"===r&&h||_&&"end"===r&&p||!_&&"start"===r&&g||!_&&"end"===r&&m),y=!!e.flipVariationsByContent&&(_&&"start"===r&&p||_&&"end"===r&&h||!_&&"start"===r&&m||!_&&"end"===r&&g),w=b||y;(d||v||w)&&(t.flipped=!0,(d||v)&&(i=s[l+1]),w&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=i+(r?"-"+r:""),t.offsets.popper=Bt({},t.offsets.popper,$t(t.instance.popper,t.offsets.reference,t.placement)),t=Jt(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=Gt(e),t.offsets.popper=Rt(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!fe(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=Zt(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=Zt(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=Ct(t.instance.popper),l=Ft(a),c={position:o.position},u=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),u=-1!==["left","right"].indexOf(t.placement),f=-1!==t.placement.indexOf("-"),d=e?u||f||l%2==c%2?r:s:a,h=e?r:a;return{left:d(l%2==1&&c%2==1&&!f&&e?i.left-1:i.left),top:h(i.top),bottom:h(i.bottom),right:d(i.right)}}(t,window.devicePixelRatio<2||!ue),f="bottom"===n?"top":"bottom",d="right"===i?"left":"right",h=ne("transform"),p=void 0,g=void 0;if(g="bottom"===f?"HTML"===a.nodeName?-a.clientHeight+u.bottom:-l.height+u.bottom:u.top,p="right"===d?"HTML"===a.nodeName?-a.clientWidth+u.right:-l.width+u.right:u.left,s&&h)c[h]="translate3d("+p+"px, "+g+"px, 0)",c[f]=0,c[d]=0,c.willChange="transform";else{var m="bottom"===f?-1:1,v="right"===d?-1:1;c[f]=g*m,c[d]=p*v,c.willChange=f+", "+d}var _={"x-placement":t.placement};return t.attributes=Bt({},_,t.attributes),t.styles=Bt({},c,t.styles),t.arrowStyles=Bt({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){return ce(t.instance.popper,t.styles),function(t,e){Object.keys(e).forEach((function(n){!1!==e[n]?t.setAttribute(n,e[n]):t.removeAttribute(n)}))}(t.instance.popper,t.attributes),t.arrowElement&&Object.keys(t.arrowStyles).length&&ce(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){var r=Kt(o,e,t,n.positionFixed),s=zt(n.placement,r,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),ce(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},ye=function(){function t(e,n){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Pt(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=_t(this.update.bind(this)),this.options=Bt({},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(Bt({},t.Defaults.modifiers,o.modifiers)).forEach((function(e){i.options.modifiers[e]=Bt({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})})),this.modifiers=Object.keys(this.options.modifiers).map((function(t){return Bt({name:t},i.options.modifiers[t])})).sort((function(t,e){return t.order-e.order})),this.modifiers.forEach((function(t){t.enabled&&bt(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 Mt(t,[{key:"update",value:function(){return te.call(this)}},{key:"destroy",value:function(){return ie.call(this)}},{key:"enableEventListeners",value:function(){return se.call(this)}},{key:"disableEventListeners",value:function(){return ae.call(this)}}]),t}();ye.Utils=("undefined"!=typeof window?window:global).PopperUtils,ye.placements=de,ye.Defaults=be;var we="dropdown",Ee=new RegExp("ArrowUp|ArrowDown|Escape"),Te={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},Le={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},ke=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(),T(t,"bs.dropdown",this)}var n=t.prototype;return n.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains("disabled")){var e=this._element.classList.contains("show");t.clearMenus(),e||this.show()}},n.show=function(){if(!(this._element.disabled||this._element.classList.contains("disabled")||this._menu.classList.contains("show"))){var e=t.getParentFromElement(this._element),n={relatedTarget:this._element};if(!V.trigger(this._element,"show.bs.dropdown",n).defaultPrevented){if(!this._inNavbar){if(void 0===ye)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var i=this._element;"parent"===this._config.reference?i=e:g(this._config.reference)&&(i=this._config.reference,void 0!==this._config.reference.jquery&&(i=this._config.reference[0])),"scrollParent"!==this._config.boundary&&e.classList.add("position-static"),this._popper=new ye(i,this._menu,this._getPopperConfig())}var o;if("ontouchstart"in document.documentElement&&!e.closest(".navbar-nav"))(o=[]).concat.apply(o,document.body.children).forEach((function(t){return V.on(t,"mouseover",null,(function(){}))}));this._element.focus(),this._element.setAttribute("aria-expanded",!0),et.toggleClass(this._menu,"show"),et.toggleClass(this._element,"show"),V.trigger(e,"shown.bs.dropdown",n)}}},n.hide=function(){if(!this._element.disabled&&!this._element.classList.contains("disabled")&&this._menu.classList.contains("show")){var e=t.getParentFromElement(this._element),n={relatedTarget:this._element};V.trigger(e,"hide.bs.dropdown",n).defaultPrevented||(this._popper&&this._popper.destroy(),et.toggleClass(this._menu,"show"),et.toggleClass(this._element,"show"),V.trigger(e,"hidden.bs.dropdown",n))}},n.dispose=function(){k(this._element,"bs.dropdown"),V.off(this._element,".bs.dropdown"),this._element=null,this._menu=null,this._popper&&(this._popper.destroy(),this._popper=null)},n.update=function(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.scheduleUpdate()},n._addEventListeners=function(){var t=this;V.on(this._element,"click.bs.dropdown",(function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}))},n._getConfig=function(t){return t=o(o(o({},this.constructor.Default),et.getDataAttributes(this._element)),t),v(we,t,this.constructor.DefaultType),t},n._getMenuElement=function(){return X.next(this._element,".dropdown-menu")[0]},n._getPlacement=function(){var t=this._element.parentNode,e="bottom-start";return t.classList.contains("dropup")?(e="top-start",this._menu.classList.contains("dropdown-menu-right")&&(e="top-end")):t.classList.contains("dropright")?e="right-start":t.classList.contains("dropleft")?e="left-start":this._menu.classList.contains("dropdown-menu-right")&&(e="bottom-end"),e},n._detectNavbar=function(){return Boolean(this._element.closest(".navbar"))},n._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=o(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}),o(o({},t),this._config.popperConfig)},t.dropdownInterface=function(e,n){var i=L(e,"bs.dropdown");if(i||(i=new t(e,"object"==typeof n?n:null)),"string"==typeof n){if(void 0===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||2!==e.button&&("keyup"!==e.type||"Tab"===e.key))for(var n=X.find('[data-toggle="dropdown"]'),i=0,o=n.length;i<o;i++){var r=t.getParentFromElement(n[i]),s=L(n[i],"bs.dropdown"),a={relatedTarget:n[i]};if(e&&"click"===e.type&&(a.clickEvent=e),s){var l=s._menu;if(n[i].classList.contains("show"))if(!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&"Tab"===e.key)&&l.contains(e.target)))if(!V.trigger(r,"hide.bs.dropdown",a).defaultPrevented){var c;if("ontouchstart"in document.documentElement)(c=[]).concat.apply(c,document.body.children).forEach((function(t){return V.off(t,"mouseover",null,(function(){}))}));n[i].setAttribute("aria-expanded","false"),s._popper&&s._popper.destroy(),l.classList.remove("show"),n[i].classList.remove("show"),V.trigger(r,"hidden.bs.dropdown",a)}}}},t.getParentFromElement=function(t){return d(t)||t.parentNode},t.dataApiKeydownHandler=function(e){if(!(/input|textarea/i.test(e.target.tagName)?"Space"===e.key||"Escape"!==e.key&&("ArrowDown"!==e.key&&"ArrowUp"!==e.key||e.target.closest(".dropdown-menu")):!Ee.test(e.key))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!this.classList.contains("disabled"))){var n=t.getParentFromElement(this),i=this.classList.contains("show");if("Escape"===e.key)return(this.matches('[data-toggle="dropdown"]')?this:X.prev(this,'[data-toggle="dropdown"]')[0]).focus(),void t.clearMenus();if(i&&"Space"!==e.key){var o=X.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",n).filter(_);if(o.length){var r=o.indexOf(e.target);"ArrowUp"===e.key&&r>0&&r--,"ArrowDown"===e.key&&r<o.length-1&&r++,o[r=-1===r?0:r].focus()}}else t.clearMenus()}},t.getInstance=function(t){return L(t,"bs.dropdown")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Te}},{key:"DefaultType",get:function(){return Le}}]),t}();V.on(document,"keydown.bs.dropdown.data-api",'[data-toggle="dropdown"]',ke.dataApiKeydownHandler),V.on(document,"keydown.bs.dropdown.data-api",".dropdown-menu",ke.dataApiKeydownHandler),V.on(document,"click.bs.dropdown.data-api",ke.clearMenus),V.on(document,"keyup.bs.dropdown.data-api",ke.clearMenus),V.on(document,"click.bs.dropdown.data-api",'[data-toggle="dropdown"]',(function(t){t.preventDefault(),t.stopPropagation(),ke.dropdownInterface(this,"toggle")})),V.on(document,"click.bs.dropdown.data-api",".dropdown form",(function(t){return t.stopPropagation()}));var Oe=w();if(Oe){var Ce=Oe.fn[we];Oe.fn[we]=ke.jQueryInterface,Oe.fn[we].Constructor=ke,Oe.fn[we].noConflict=function(){return Oe.fn[we]=Ce,ke.jQueryInterface}}var Ae={backdrop:!0,keyboard:!0,focus:!0,show:!0},De={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Se=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=X.findOne(".modal-dialog",t),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,T(t,"bs.modal",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("fade")&&(this._isTransitioning=!0);var n=V.trigger(this._element,"show.bs.modal",{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),V.on(this._element,"click.dismiss.bs.modal",'[data-dismiss="modal"]',(function(t){return e.hide(t)})),V.on(this._dialog,"mousedown.dismiss.bs.modal",(function(){V.one(e._element,"mouseup.dismiss.bs.modal",(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)&&!V.trigger(this._element,"hide.bs.modal").defaultPrevented){this._isShown=!1;var n=this._element.classList.contains("fade");if(n&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),V.off(document,"focusin.bs.modal"),this._element.classList.remove("show"),V.off(this._element,"click.dismiss.bs.modal"),V.off(this._dialog,"mousedown.dismiss.bs.modal"),n){var i=h(this._element);V.one(this._element,"transitionend",(function(t){return e._hideModal(t)})),m(this._element,i)}else this._hideModal()}},n.dispose=function(){[window,this._element,this._dialog].forEach((function(t){return V.off(t,".bs.modal")})),V.off(document,"focusin.bs.modal"),k(this._element,"bs.modal"),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(o({},Ae),t),v("modal",t,De),t},n._showElement=function(t){var e=this,n=this._element.classList.contains("fade"),i=X.findOne(".modal-body",this._dialog);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._element.scrollTop=0,i&&(i.scrollTop=0),n&&y(this._element),this._element.classList.add("show"),this._config.focus&&this._enforceFocus();var o=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,V.trigger(e._element,"shown.bs.modal",{relatedTarget:t})};if(n){var r=h(this._dialog);V.one(this._dialog,"transitionend",o),m(this._dialog,r)}else o()},n._enforceFocus=function(){var t=this;V.off(document,"focusin.bs.modal"),V.on(document,"focusin.bs.modal",(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?V.on(this._element,"keydown.dismiss.bs.modal",(function(e){t._config.keyboard&&"Escape"===e.key?(e.preventDefault(),t.hide()):t._config.keyboard||"Escape"!==e.key||t._triggerBackdropTransition()})):V.off(this._element,"keydown.dismiss.bs.modal")},n._setResizeEvent=function(){var t=this;this._isShown?V.on(window,"resize.bs.modal",(function(){return t._adjustDialog()})):V.off(window,"resize.bs.modal")},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("modal-open"),t._resetAdjustments(),t._resetScrollbar(),V.trigger(t._element,"hidden.bs.modal")}))},n._removeBackdrop=function(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null},n._showBackdrop=function(t){var e=this,n=this._element.classList.contains("fade")?"fade":"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),V.on(this._element,"click.dismiss.bs.modal",(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&e._triggerBackdropTransition()})),n&&y(this._backdrop),this._backdrop.classList.add("show"),!n)return void t();var i=h(this._backdrop);V.one(this._backdrop,"transitionend",t),m(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove("show");var o=function(){e._removeBackdrop(),t()};if(this._element.classList.contains("fade")){var r=h(this._backdrop);V.one(this._backdrop,"transitionend",o),m(this._backdrop,r)}else o()}else t()},n._triggerBackdropTransition=function(){var t=this;if("static"===this._config.backdrop){if(V.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;this._element.classList.add("modal-static");var e=h(this._element);V.one(this._element,"transitionend",(function(){t._element.classList.remove("modal-static")})),m(this._element,e),this._element.focus()}else this.hide()},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=Math.round(t.left+t.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},n._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){X.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];et.setDataAttribute(e,"padding-right",n),e.style.paddingRight=parseFloat(i)+t._scrollbarWidth+"px"})),X.find(".sticky-top").forEach((function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];et.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"];et.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add("modal-open")},n._resetScrollbar=function(){X.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(t){var e=et.getDataAttribute(t,"padding-right");void 0!==e&&(et.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)})),X.find(".sticky-top").forEach((function(t){var e=et.getDataAttribute(t,"margin-right");void 0!==e&&(et.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)}));var t=et.getDataAttribute(document.body,"padding-right");void 0===t?document.body.style.paddingRight="":(et.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},n._getScrollbarWidth=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",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=L(this,"bs.modal"),r=o(o(o({},Ae),et.getDataAttributes(this)),"object"==typeof e&&e?e:{});if(i||(i=new t(this,r)),"string"==typeof e){if(void 0===i[e])throw new TypeError('No method named "'+e+'"');i[e](n)}else r.show&&i.show(n)}))},t.getInstance=function(t){return L(t,"bs.modal")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ae}}]),t}();V.on(document,"click.bs.modal.data-api",'[data-toggle="modal"]',(function(t){var e=this,n=d(this);"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),V.one(n,"show.bs.modal",(function(t){t.defaultPrevented||V.one(n,"hidden.bs.modal",(function(){_(e)&&e.focus()}))}));var i=L(n,"bs.modal");if(!i){var r=o(o({},et.getDataAttributes(n)),et.getDataAttributes(this));i=new Se(n,r)}i.show(this)}));var xe=w();if(xe){var Ne=xe.fn.modal;xe.fn.modal=Se.jQueryInterface,xe.fn.modal.Constructor=Se,xe.fn.modal.noConflict=function(){return xe.fn.modal=Ne,Se.jQueryInterface}}var Ie=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],je=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,Pe=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Me={"*":["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","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function He(t,e,n){var i;if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var o=(new window.DOMParser).parseFromString(t,"text/html"),r=Object.keys(e),s=(i=[]).concat.apply(i,o.body.querySelectorAll("*")),a=function(t,n){var i,o=s[t],a=o.nodeName.toLowerCase();if(-1===r.indexOf(a))return o.parentNode.removeChild(o),"continue";var l=(i=[]).concat.apply(i,o.attributes),c=[].concat(e["*"]||[],e[a]||[]);l.forEach((function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Ie.indexOf(n)||(je.test(t.nodeValue)||Pe.test(t.nodeValue));for(var i=e.filter((function(t){return t instanceof RegExp})),o=0,r=i.length;o<r;o++)if(i[o].test(n))return!0;return!1})(t,c)||o.removeAttribute(t.nodeName)}))},l=0,c=s.length;l<c;l++)a(l);return o.body.innerHTML}var Be="tooltip",Re=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Fe=["sanitize","whiteList","sanitizeFn"],We={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",popperConfig:"(null|object)"},Ue={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Qe={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:Me,popperConfig:null},Ve={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"},qe=function(){function t(t,e){if(void 0===ye)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(),T(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=L(t.target,e);n||(n=new this.constructor(t.target,this._getDelegateConfig()),T(t.target,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}},n.dispose=function(){clearTimeout(this._timeout),k(this.element,this.constructor.DATA_KEY),V.off(this.element,this.constructor.EVENT_KEY),V.off(this.element.closest(".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,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=V.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("fade");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 l,u=this._getContainer();if(T(o,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||u.appendChild(o),V.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new ye(this.element,o,this._getPopperConfig(a)),o.classList.add("show"),"ontouchstart"in document.documentElement)(l=[]).concat.apply(l,document.body.children).forEach((function(t){V.on(t,"mouseover",(function(){}))}));var f=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,V.trigger(t.element,t.constructor.Event.SHOWN),"out"===e&&t._leave(null,t)};if(this.tip.classList.contains("fade")){var d=h(this.tip);V.one(this.tip,"transitionend",f),m(this.tip,d)}else f()}},n.hide=function(){var t=this,e=this.getTipElement(),n=function(){"show"!==t._hoverState&&e.parentNode&&e.parentNode.removeChild(e),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),V.trigger(t.element,t.constructor.Event.HIDDEN),t._popper.destroy()};if(!V.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){var i;if(e.classList.remove("show"),"ontouchstart"in document.documentElement)(i=[]).concat.apply(i,document.body.children).forEach((function(t){return V.off(t,"mouseover",b)}));if(this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this.tip.classList.contains("fade")){var o=h(e);V.one(e,"transitionend",n),m(e,o)}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(".tooltip-inner",t),this.getTitle()),t.classList.remove("fade","show")},n.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&g(e)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.textContent=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=He(e,this.config.whiteList,this.config.sanitizeFn)),t.innerHTML=e):t.textContent=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._getPopperConfig=function(t){var e=this;return o(o({},{placement:t,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)}}),this.config.popperConfig)},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(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:g(this.config.container)?this.config.container:X.findOne(this.config.container)},n._getAttachment=function(t){return Ue[t.toUpperCase()]},n._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)V.on(t.element,t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n="hover"===e?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i="hover"===e?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;V.on(t.element,n,t.config.selector,(function(e){return t._enter(e)})),V.on(t.element,i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},V.on(this.element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=o(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||L(t.target,n))||(e=new this.constructor(t.target,this._getDelegateConfig()),T(t.target,n,e)),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){"show"===e._hoverState&&e.show()}),e.config.delay.show):e.show())},n._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||L(t.target,n))||(e=new this.constructor(t.target,this._getDelegateConfig()),T(t.target,n,e)),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){"out"===e._hoverState&&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=et.getDataAttributes(this.element);return Object.keys(e).forEach((function(t){-1!==Fe.indexOf(t)&&delete e[t]})),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=o(o(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()),v(Be,t,this.constructor.DefaultType),t.sanitize&&(t.template=He(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(Re);null!==e&&e.length>0&&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("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.tooltip"),i="object"==typeof e&&e;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,i)),"string"==typeof e)){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t.getInstance=function(t){return L(t,"bs.tooltip")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Qe}},{key:"NAME",get:function(){return Be}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return Ve}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return We}}]),t}(),Ye=w();if(Ye){var ze=Ye.fn[Be];Ye.fn[Be]=qe.jQueryInterface,Ye.fn[Be].Constructor=qe,Ye.fn[Be].noConflict=function(){return Ye.fn[Be]=ze,qe.jQueryInterface}}var Ke="popover",Xe=new RegExp("(^|\\s)bs-popover\\S+","g"),Ge=o(o({},qe.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>'}),$e=o(o({},qe.DefaultType),{},{content:"(string|element|function)"}),Ze={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"},Je=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.setContent=function(){var t=this.getTipElement();this.setElementContent(X.findOne(".popover-header",t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(X.findOne(".popover-body",t),e),t.classList.remove("fade","show")},r._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(Xe);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=L(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),T(this,"bs.popover",e)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},o.getInstance=function(t){return L(t,"bs.popover")},e(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ge}},{key:"NAME",get:function(){return Ke}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return Ze}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return $e}}]),o}(qe),tn=w();if(tn){var en=tn.fn[Ke];tn.fn[Ke]=Je.jQueryInterface,tn.fn[Ke].Constructor=Je,tn.fn[Ke].noConflict=function(){return tn.fn[Ke]=en,Je.jQueryInterface}}var nn="scrollspy",on={offset:10,method:"auto",target:""},rn={offset:"number",method:"string",target:"(string|element)"},sn=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+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,V.on(this._scrollElement,"scroll.bs.scrollspy",(function(t){return n._process(t)})),this.refresh(),this._process(),T(t,"bs.scrollspy",this)}var n=t.prototype;return n.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":"position",n="auto"===this._config.method?e:this._config.method,i="position"===n?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),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[et[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(){k(this._element,"bs.scrollspy"),V.off(this._scrollElement,".bs.scrollspy"),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(o({},on),"object"==typeof t&&t?t:{})).target&&g(t.target)){var e=t.target.id;e||(e=c(nn),t.target.id=e),t.target="#"+e}return v(nn,t,rn),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]&&(void 0===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("dropdown-item")?(X.findOne(".dropdown-toggle",n.closest(".dropdown")).classList.add("active"),n.classList.add("active")):(n.classList.add("active"),X.parents(n,".nav, .list-group").forEach((function(t){X.prev(t,".nav-link, .list-group-item").forEach((function(t){return t.classList.add("active")})),X.prev(t,".nav-item").forEach((function(t){X.children(t,".nav-link").forEach((function(t){return t.classList.add("active")}))}))}))),V.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})},n._clear=function(){X.find(this._selector).filter((function(t){return t.classList.contains("active")})).forEach((function(t){return t.classList.remove("active")}))},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.scrollspy");if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t.getInstance=function(t){return L(t,"bs.scrollspy")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return on}}]),t}();V.on(window,"load.bs.scrollspy.data-api",(function(){X.find('[data-spy="scroll"]').forEach((function(t){return new sn(t,et.getDataAttributes(t))}))}));var an=w();if(an){var ln=an.fn[nn];an.fn[nn]=sn.jQueryInterface,an.fn[nn].Constructor=sn,an.fn[nn].noConflict=function(){return an.fn[nn]=ln,sn.jQueryInterface}}var cn=function(){function t(t){this._element=t,T(this._element,"bs.tab",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("active")||this._element.classList.contains("disabled"))){var e,n=d(this._element),i=this._element.closest(".nav, .list-group");if(i){var o="UL"===i.nodeName||"OL"===i.nodeName?":scope > li > .active":".active";e=(e=X.find(o,i))[e.length-1]}var r=null;if(e&&(r=V.trigger(e,"hide.bs.tab",{relatedTarget:this._element})),!(V.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==r&&r.defaultPrevented)){this._activate(this._element,i);var s=function(){V.trigger(e,"hidden.bs.tab",{relatedTarget:t._element}),V.trigger(t._element,"shown.bs.tab",{relatedTarget:e})};n?this._activate(n,n.parentNode,s):s()}}},n.dispose=function(){k(this._element,"bs.tab"),this._element=null},n._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?X.children(e,".active"):X.find(":scope > li > .active",e))[0],r=n&&o&&o.classList.contains("fade"),s=function(){return i._transitionComplete(t,o,n)};if(o&&r){var a=h(o);o.classList.remove("show"),V.one(o,"transitionend",s),m(o,a)}else s()},n._transitionComplete=function(t,e,n){if(e){e.classList.remove("active");var i=X.findOne(":scope > .dropdown-menu .active",e.parentNode);i&&i.classList.remove("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),y(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&t.parentNode.classList.contains("dropdown-menu"))&&(t.closest(".dropdown")&&X.find(".dropdown-toggle").forEach((function(t){return t.classList.add("active")})),t.setAttribute("aria-expanded",!0));n&&n()},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.tab")||new t(this);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t.getInstance=function(t){return L(t,"bs.tab")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();V.on(document,"click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),(L(this,"bs.tab")||new cn(this)).show()}));var un=w();if(un){var fn=un.fn.tab;un.fn.tab=cn.jQueryInterface,un.fn.tab.Constructor=cn,un.fn.tab.noConflict=function(){return un.fn.tab=fn,cn.jQueryInterface}}var dn={animation:"boolean",autohide:"boolean",delay:"number"},hn={animation:!0,autohide:!0,delay:500},pn=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),T(t,"bs.toast",this)}var n=t.prototype;return n.show=function(){var t=this;if(!V.trigger(this._element,"show.bs.toast").defaultPrevented){this._config.animation&&this._element.classList.add("fade");var e=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),V.trigger(t._element,"shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),y(this._element),this._element.classList.add("showing"),this._config.animation){var n=h(this._element);V.one(this._element,"transitionend",e),m(this._element,n)}else e()}},n.hide=function(){var t=this;if(this._element.classList.contains("show")&&!V.trigger(this._element,"hide.bs.toast").defaultPrevented){var e=function(){t._element.classList.add("hide"),V.trigger(t._element,"hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var n=h(this._element);V.one(this._element,"transitionend",e),m(this._element,n)}else e()}},n.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains("show")&&this._element.classList.remove("show"),V.off(this._element,"click.dismiss.bs.toast"),k(this._element,"bs.toast"),this._element=null,this._config=null},n._getConfig=function(t){return t=o(o(o({},hn),et.getDataAttributes(this._element)),"object"==typeof t&&t?t:{}),v("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;V.on(this._element,"click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.toast");if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e](this)}}))},t.getInstance=function(t){return L(t,"bs.toast")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return dn}},{key:"Default",get:function(){return hn}}]),t}(),gn=w();if(gn){var mn=gn.fn.toast;gn.fn.toast=pn.jQueryInterface,gn.fn.toast.Constructor=pn,gn.fn.toast.noConflict=function(){return gn.fn.toast=mn,pn.jQueryInterface}}return{Alert:Y,Button:G,Carousel:at,Collapse:ht,Dropdown:ke,Modal:Se,Popover:Je,ScrollSpy:sn,Tab:cn,Toast:pn,Tooltip:qe}}));
//# 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 9881327031..3c603992e5 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","element","getUID","prefix","Math","random","document","getElementById","getSelector","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","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","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","mapData","set","key","data","get","keyProperties","delete","Data","instance","find","Element","prototype","querySelectorAll","findOne","defaultPreventedPreservedOnDispatch","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","scopeSelectorRegex","_","this","hasId","Boolean","nodeList","replace","removeAttribute","matches","$","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","slice","keyHandlers","trigger","args","jQueryEvent","isNative","bubbles","nativeDispatch","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","SelectorEngine","_ref","documentElement","concat","findFn","children","_ref2","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","previous","previousElementSibling","next","nextElementSibling","NAME","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","_this","classList","remove","contains","_destroyElement","removeChild","jQueryInterface","each","handleDismiss","alertInstance","getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread2","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","EVENT_KEY","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","_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","Collapse","_isTransitioning","_triggerArray","SELECTOR_DATA_TOGGLE","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","timeoutDuration","longerTimeoutBrowsers","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","css","ownerDocument","defaultView","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","isOffsetContainer","element1root","getScroll","side","arguments","undefined","upperSide","html","scrollingElement","includeScroll","subtract","modifier","bottom","right","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","classCallCheck","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","protoProps","staticProps","_extends","assign","source","hasOwnProperty","getClientRect","offsets","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","map","area","sort","a","b","filteredAreas","computedPlacement","variation","getReferenceOffsets","state","commonOffsetParent","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","update","isDestroyed","arrowStyles","flipped","options","positionFixed","flip","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","toCheck","destroy","willChange","disableEventListeners","removeOnDestroy","getWindow","setupEventListeners","updateBound","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","shift","shiftvariation","_data$offsets","isVertical","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","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","x-placement","applyStyle","setAttributes","onLoad","modifierOptions","Popper","requestAnimationFrame","Utils","global","PopperUtils","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","boundary","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","clearMenus","getParentFromElement","referenceElement","_getPopperConfig","stopPropagation","constructor","_getPlacement","parentDropdown","_getOffset","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_this5","_triggerBackdropTransition","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","_this9","modalTransitionDuration","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","_this10","actualPadding","calculatedPadding","actualMargin","calculatedMargin","margin","scrollDiv","scrollbarWidth","_this11","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","DefaultWhitelist","*","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","_loop","elName","attributeList","whitelistedAttributes","attr","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","allowedAttribute","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","DATA_KEY","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","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","_handlePopperPlacementChange","CLASS_PREFIX","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","token","tClass","popperData","popperInstance","initConfigAnimation","Popover","_getContent","method","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","SELECTOR_NAV_LINKS","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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = 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() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\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 element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n 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 isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\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 find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('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\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (_) {\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 find,\n findOne,\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 { getjQuery } from '../util/index'\nimport { defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst $ = getjQuery()\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.slice(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 && $) {\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 = new CustomEvent(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 } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n return [].concat(...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 = [].concat(...element.children)\n\n return children.filter(child => child.matches(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 element.closest(selector)\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\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_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\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 let parent = getElementFromSelector(element)\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif ($) {\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 { getjQuery } 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 CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"buttons\"]'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_BLUR_DATA_API = `blur${EVENT_KEY}${DATA_API_KEY}`\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 && input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains(CLASS_NAME_DISABLED) ||\n rootElement.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n input.checked = !this._element.classList.contains(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_FOCUS)\n }\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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'\n\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = 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 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(CLASS_NAME_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 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(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_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 = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_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 target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_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 = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\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_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = 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(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = 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(CLASS_NAME_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(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_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(WIDTH)\n return hasWidth ? WIDTH : 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 = `${SELECTOR_DATA_TOGGLE}[data-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\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(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_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 = 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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.16.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' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* 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\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['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.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\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, getReferenceNode(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, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\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 explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(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 getjQuery,\n getElementFromSelector,\n isElement,\n isVisible,\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'\n\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)\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n 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(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_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(this._element, 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 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(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !SelectorEngine.closest(parent, SELECTOR_NAVBAR_NAV)) {\n [].concat(...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, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_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 if (this._popper) {\n this._popper.destroy()\n }\n\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_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) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\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 return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = PLACEMENT_TOP\n if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_TOPEND\n }\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, `.${CLASS_NAME_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 {\n ...popperConfig,\n ...this._config.popperConfig\n }\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 = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = 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 (!toggles[i].classList.contains(CLASS_NAME_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 dropdownMenu.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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || 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(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.which === ESCAPE_KEYCODE) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.which === SPACE_KEYCODE) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent)\n .filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target) || 0\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 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\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(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.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(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (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) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else {\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(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n 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 this._triggerBackdropTransition()\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_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(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_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 _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._element)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\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 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 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(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n 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 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 = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.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 target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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\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,[\\d+/a-z]+=*$/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 SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\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', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\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 = [].concat(...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 = [].concat(...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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\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 popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"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 popperConfig: null\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 CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.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(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n 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, `.${CLASS_NAME_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) {\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(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n 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, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_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 [].concat(...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 === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_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 !== HOVER_STATE_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(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...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(CLASS_NAME_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(CLASS_NAME_FADE)\n tip.classList.remove(CLASS_NAME_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 _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${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 return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\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, `.${CLASS_NAME_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(CLASS_NAME_SHOW) ||\n context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || 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 = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = 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 > 0) {\n tabClass.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(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 { getjQuery } 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 Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\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 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(CLASS_NAME_FADE)\n tip.classList.remove(CLASS_NAME_SHOW)\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\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 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getSelectorFromElement,\n getUID,\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_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} .${CLASS_NAME_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 METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = 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(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(SELECTOR_DROPDOWN_TOGGLE, SelectorEngine.closest(link, SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = 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 SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\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_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\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(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = SelectorEngine.closest(this._element, SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = 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 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\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_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n 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(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n 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(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_HIDE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_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(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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/alert.js","../../js/src/dom/selector-engine.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","element","getUID","prefix","Math","random","document","getElementById","getSelector","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","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","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","mapData","set","key","data","get","keyProperties","delete","Data","instance","find","Element","prototype","querySelectorAll","findOne","defaultPreventedPreservedOnDispatch","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","scopeSelectorRegex","_","this","hasId","Boolean","nodeList","replace","removeAttribute","matches","$","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","findHandler","events","handler","delegationSelector","uidEventList","i","len","length","event","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","oneOff","_normalizeParams","handlers","previousFn","fn","domElements","target","EventHandler","off","type","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","slice","keyHandlers","trigger","args","jQueryEvent","isNative","bubbles","nativeDispatch","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","NAME","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","closest","_this","classList","remove","contains","_destroyElement","removeChild","jQueryInterface","each","handleDismiss","alertInstance","getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","SelectorEngine","_ref","documentElement","concat","findFn","children","_ref2","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","previous","previousElementSibling","next","nextElementSibling","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread2","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","EVENT_KEY","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_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","parent","Collapse","_isTransitioning","_triggerArray","SELECTOR_DATA_TOGGLE","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","timeoutDuration","longerTimeoutBrowsers","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","css","ownerDocument","defaultView","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","isOffsetContainer","element1root","getScroll","side","arguments","undefined","upperSide","html","scrollingElement","includeScroll","subtract","modifier","bottom","right","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","classCallCheck","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","protoProps","staticProps","_extends","assign","source","hasOwnProperty","getClientRect","offsets","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","map","area","sort","a","b","filteredAreas","computedPlacement","variation","getReferenceOffsets","state","commonOffsetParent","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","update","isDestroyed","arrowStyles","flipped","options","positionFixed","flip","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","toCheck","destroy","willChange","disableEventListeners","removeOnDestroy","getWindow","setupEventListeners","updateBound","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","shift","shiftvariation","_data$offsets","isVertical","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","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","x-placement","applyStyle","setAttributes","onLoad","modifierOptions","Popper","requestAnimationFrame","Utils","global","PopperUtils","REGEXP_KEYDOWN","ARROW_UP_KEY","boundary","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","clearMenus","getParentFromElement","referenceElement","_getPopperConfig","stopPropagation","constructor","_getPlacement","parentDropdown","_getOffset","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_this5","_triggerBackdropTransition","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","_this9","modalTransitionDuration","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","_this10","actualPadding","calculatedPadding","actualMargin","calculatedMargin","margin","scrollDiv","scrollbarWidth","_this11","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","DefaultWhitelist","*","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","_loop","elName","attributeList","whitelistedAttributes","attr","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","allowedAttribute","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","DATA_KEY","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","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","_handlePopperPlacementChange","CLASS_PREFIX","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","token","tClass","popperData","popperInstance","initConfigAnimation","Popover","_getContent","method","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","SELECTOR_NAV_LINKS","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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = 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() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\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 element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n 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 isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\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 find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('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\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (_) {\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 find,\n findOne,\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 { getjQuery } from '../util/index'\nimport { defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst $ = getjQuery()\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\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 bootstrapHandler(element, fn) {\n return function handler(event) {\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 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.slice(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 && $) {\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 = new CustomEvent(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): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\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_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\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 return getElementFromSelector(element) || element.closest(`.${CLASSNAME_ALERT}`)\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif ($) {\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): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n return [].concat(...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 = [].concat(...element.children)\n\n return children.filter(child => child.matches(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 prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n }\n}\n\nexport default SelectorEngine\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 { getjQuery } 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 CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"buttons\"]'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_BLUR_DATA_API = `blur${EVENT_KEY}${DATA_API_KEY}`\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 = this._element.closest(SELECTOR_DATA_TOGGLE)\n\n if (rootElement) {\n const input = SelectorEngine.findOne(SELECTOR_INPUT, this._element)\n\n if (input && input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains(CLASS_NAME_DISABLED) ||\n rootElement.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n input.checked = !this._element.classList.contains(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(CLASS_NAME_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 const button = event.target.closest(SELECTOR_BUTTON)\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 = event.target.closest(SELECTOR_BUTTON)\n\n if (button) {\n button.classList.add(CLASS_NAME_FOCUS)\n }\n})\n\nEventHandler.on(document, EVENT_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = event.target.closest(SELECTOR_BUTTON)\n\n if (button) {\n button.classList.remove(CLASS_NAME_FOCUS)\n }\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\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 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(CLASS_NAME_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.key) {\n case ARROW_LEFT_KEY:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEY:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n 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(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_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 = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_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(CLASS_NAME_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, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, 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(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_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 target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_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 = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\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_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = 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(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = 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(CLASS_NAME_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(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_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(WIDTH)\n return hasWidth ? WIDTH : 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 = `${SELECTOR_DATA_TOGGLE}[data-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\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(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_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 && typeof config === 'string' && /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 = 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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.16.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' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* 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\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['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.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\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, getReferenceNode(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, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\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 explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(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 getjQuery,\n getElementFromSelector,\n isElement,\n isVisible,\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'\n\nconst ESCAPE_KEY = 'Escape'\nconst SPACE_KEY = 'Space'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n 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(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_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(this._element, 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 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(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...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, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_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 if (this._popper) {\n this._popper.destroy()\n }\n\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_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) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\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 return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = PLACEMENT_TOP\n if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_TOPEND\n }\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(this._element.closest(`.${CLASS_NAME_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 {\n ...popperConfig,\n ...this._config.popperConfig\n }\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.button === RIGHT_MOUSE_BUTTON ||\n (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = 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 (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && ((event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName)) ||\n (event.type === 'keyup' && event.key === TAB_KEY)) &&\n dropdownMenu.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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || 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.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent)\n .filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.key === ARROW_UP_KEY && index > 0) { // Up\n index--\n }\n\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) { // Down\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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_KEY = 'Escape'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.scrollTop = 0\n\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (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) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n 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 this._triggerBackdropTransition()\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_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(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_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 _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._element)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\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 = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n 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 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(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n 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 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 = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.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 target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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\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,[\\d+/a-z]+=*$/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 SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\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', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\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 = [].concat(...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 = [].concat(...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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\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 popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"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 popperConfig: null\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 CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.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.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, 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(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(this.element.closest(`.${CLASS_NAME_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) {\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(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n 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, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_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 [].concat(...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 === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_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 !== HOVER_STATE_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(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...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(CLASS_NAME_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(CLASS_NAME_FADE, CLASS_NAME_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.textContent = 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.textContent = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${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 return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\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(this.element.closest(`.${CLASS_NAME_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.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, 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(CLASS_NAME_SHOW) ||\n context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = 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 > 0) {\n tabClass.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(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 { getjQuery } 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 Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\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 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(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\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 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getSelectorFromElement,\n getUID,\n isElement,\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_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} .${CLASS_NAME_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 METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = 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' && isElement(config.target)) {\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 for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.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(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = 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 SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\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_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\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(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = 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 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\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_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n 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(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n 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(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_HIDE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_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(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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
diff --git a/dist/js/bootstrap.esm.js b/dist/js/bootstrap.esm.js
index a69d438851..a5088b3f8d 100644
--- a/dist/js/bootstrap.esm.js
+++ b/dist/js/bootstrap.esm.js
@@ -405,7 +405,6 @@ if (!supportScopeQuery) {
var $ = getjQuery();
var namespaceRegex = /[^.]*(?=\..*)\.|.*/;
var stripNameRegex = /\..*/;
-var keyEventRegex = /^key/;
var stripUidRegex = /::\d+$/;
var eventRegistry = {}; // Events storage
@@ -432,19 +431,8 @@ function getEvent(element) {
return eventRegistry[uid];
}
-function fixEvent(event, element) {
- // Add which for key events
- if (event.which === null && keyEventRegex.test(event.type)) {
- event.which = event.charCode === null ? event.keyCode : event.charCode;
- }
-
- event.delegateTarget = element;
-}
-
function bootstrapHandler(element, fn) {
return function handler(event) {
- fixEvent(event, element);
-
if (handler.oneOff) {
EventHandler.off(element, event.type, fn);
}
@@ -460,8 +448,6 @@ function bootstrapDelegationHandler(element, selector, fn) {
for (var target = event.target; target && target !== this; target = target.parentNode) {
for (var i = domElements.length; i--;) {
if (domElements[i] === target) {
- fixEvent(event, target);
-
if (handler.oneOff) {
EventHandler.off(element, event.type, fn);
}
@@ -684,93 +670,6 @@ var EventHandler = {
};
/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.3.1): dom/selector-engine.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
-/**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
-
-var NODE_TEXT = 3;
-var SelectorEngine = {
- matches: function matches(element, selector) {
- return element.matches(selector);
- },
- find: function find$1(selector, element) {
- var _ref;
-
- if (element === void 0) {
- element = document.documentElement;
- }
-
- return (_ref = []).concat.apply(_ref, find.call(element, selector));
- },
- findOne: function findOne$1(selector, element) {
- if (element === void 0) {
- element = document.documentElement;
- }
-
- return findOne.call(element, selector);
- },
- children: function children(element, selector) {
- var _ref2;
-
- var children = (_ref2 = []).concat.apply(_ref2, element.children);
-
- return children.filter(function (child) {
- return child.matches(selector);
- });
- },
- parents: function parents(element, selector) {
- var parents = [];
- var ancestor = element.parentNode;
-
- while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {
- if (this.matches(ancestor, selector)) {
- parents.push(ancestor);
- }
-
- ancestor = ancestor.parentNode;
- }
-
- return parents;
- },
- closest: function closest(element, selector) {
- return element.closest(selector);
- },
- prev: function prev(element, selector) {
- var previous = element.previousElementSibling;
-
- while (previous) {
- if (previous.matches(selector)) {
- return [previous];
- }
-
- previous = previous.previousElementSibling;
- }
-
- return [];
- },
- next: function next(element, selector) {
- var next = element.nextElementSibling;
-
- while (next) {
- if (this.matches(next, selector)) {
- return [next];
- }
-
- next = next.nextElementSibling;
- }
-
- return [];
- }
-};
-
-/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
@@ -830,13 +729,7 @@ var Alert = /*#__PURE__*/function () {
;
_proto._getRootElement = function _getRootElement(element) {
- var parent = getElementFromSelector(element);
-
- if (!parent) {
- parent = SelectorEngine.closest(element, "." + CLASSNAME_ALERT);
- }
-
- return parent;
+ return getElementFromSelector(element) || element.closest("." + CLASSNAME_ALERT);
};
_proto._triggerCloseEvent = function _triggerCloseEvent(element) {
@@ -937,6 +830,90 @@ if ($$1) {
}
/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.3.1): dom/selector-engine.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+/**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+var NODE_TEXT = 3;
+var SelectorEngine = {
+ matches: function matches(element, selector) {
+ return element.matches(selector);
+ },
+ find: function find$1(selector, element) {
+ var _ref;
+
+ if (element === void 0) {
+ element = document.documentElement;
+ }
+
+ return (_ref = []).concat.apply(_ref, find.call(element, selector));
+ },
+ findOne: function findOne$1(selector, element) {
+ if (element === void 0) {
+ element = document.documentElement;
+ }
+
+ return findOne.call(element, selector);
+ },
+ children: function children(element, selector) {
+ var _ref2;
+
+ var children = (_ref2 = []).concat.apply(_ref2, element.children);
+
+ return children.filter(function (child) {
+ return child.matches(selector);
+ });
+ },
+ parents: function parents(element, selector) {
+ var parents = [];
+ var ancestor = element.parentNode;
+
+ while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {
+ if (this.matches(ancestor, selector)) {
+ parents.push(ancestor);
+ }
+
+ ancestor = ancestor.parentNode;
+ }
+
+ return parents;
+ },
+ prev: function prev(element, selector) {
+ var previous = element.previousElementSibling;
+
+ while (previous) {
+ if (previous.matches(selector)) {
+ return [previous];
+ }
+
+ previous = previous.previousElementSibling;
+ }
+
+ return [];
+ },
+ next: function next(element, selector) {
+ var next = element.nextElementSibling;
+
+ while (next) {
+ if (this.matches(next, selector)) {
+ return [next];
+ }
+
+ next = next.nextElementSibling;
+ }
+
+ return [];
+ }
+};
+
+/**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
@@ -948,7 +925,6 @@ var DATA_KEY$1 = 'bs.button';
var EVENT_KEY$1 = "." + DATA_KEY$1;
var DATA_API_KEY$1 = '.data-api';
var CLASS_NAME_ACTIVE = 'active';
-var CLASS_NAME_BUTTON = 'btn';
var CLASS_NAME_DISABLED = 'disabled';
var CLASS_NAME_FOCUS = 'focus';
var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]';
@@ -978,7 +954,8 @@ var Button = /*#__PURE__*/function () {
_proto.toggle = function toggle() {
var triggerChangeEvent = true;
var addAriaPressed = true;
- var rootElement = SelectorEngine.closest(this._element, SELECTOR_DATA_TOGGLE);
+
+ var rootElement = this._element.closest(SELECTOR_DATA_TOGGLE);
if (rootElement) {
var input = SelectorEngine.findOne(SELECTOR_INPUT, this._element);
@@ -1059,12 +1036,7 @@ var Button = /*#__PURE__*/function () {
EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
event.preventDefault();
- var button = event.target;
-
- if (!button.classList.contains(CLASS_NAME_BUTTON)) {
- button = SelectorEngine.closest(button, SELECTOR_BUTTON);
- }
-
+ var button = event.target.closest(SELECTOR_BUTTON);
var data = Data.getData(button, DATA_KEY$1);
if (!data) {
@@ -1074,14 +1046,14 @@ EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE_CARROT, f
data.toggle();
});
EventHandler.on(document, EVENT_FOCUS_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
- var button = SelectorEngine.closest(event.target, SELECTOR_BUTTON);
+ var button = event.target.closest(SELECTOR_BUTTON);
if (button) {
button.classList.add(CLASS_NAME_FOCUS);
}
});
EventHandler.on(document, EVENT_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
- var button = SelectorEngine.closest(event.target, SELECTOR_BUTTON);
+ var button = event.target.closest(SELECTOR_BUTTON);
if (button) {
button.classList.remove(CLASS_NAME_FOCUS);
@@ -1199,10 +1171,8 @@ var VERSION$2 = '4.3.1';
var DATA_KEY$2 = 'bs.carousel';
var EVENT_KEY$2 = "." + DATA_KEY$2;
var DATA_API_KEY$2 = '.data-api';
-var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
-
-var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
-
+var ARROW_LEFT_KEY = 'ArrowLeft';
+var ARROW_RIGHT_KEY = 'ArrowRight';
var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
var SWIPE_THRESHOLD = 40;
@@ -1279,7 +1249,7 @@ var Carousel = /*#__PURE__*/function () {
this._element = element;
this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
- this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);
+ this._pointerEvent = Boolean(window.PointerEvent);
this._addEventListeners();
@@ -1383,7 +1353,7 @@ var Carousel = /*#__PURE__*/function () {
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default, {}, config);
+ config = _objectSpread2(_objectSpread2({}, Default), config);
typeCheckConfig(NAME$2, config, DefaultType);
return config;
};
@@ -1511,13 +1481,13 @@ var Carousel = /*#__PURE__*/function () {
return;
}
- switch (event.which) {
- case ARROW_LEFT_KEYCODE:
+ switch (event.key) {
+ case ARROW_LEFT_KEY:
event.preventDefault();
this.prev();
break;
- case ARROW_RIGHT_KEYCODE:
+ case ARROW_RIGHT_KEY:
event.preventDefault();
this.next();
break;
@@ -1642,12 +1612,9 @@ var Carousel = /*#__PURE__*/function () {
var transitionDuration = getTransitionDurationFromElement(activeElement);
EventHandler.one(activeElement, TRANSITION_END, function () {
- nextElement.classList.remove(directionalClassName);
- nextElement.classList.remove(orderClassName);
+ nextElement.classList.remove(directionalClassName, orderClassName);
nextElement.classList.add(CLASS_NAME_ACTIVE$1);
- activeElement.classList.remove(CLASS_NAME_ACTIVE$1);
- activeElement.classList.remove(orderClassName);
- activeElement.classList.remove(directionalClassName);
+ activeElement.classList.remove(CLASS_NAME_ACTIVE$1, orderClassName, directionalClassName);
_this4._isSliding = false;
setTimeout(function () {
EventHandler.trigger(_this4._element, EVENT_SLID, {
@@ -1680,10 +1647,10 @@ var Carousel = /*#__PURE__*/function () {
Carousel.carouselInterface = function carouselInterface(element, config) {
var data = Data.getData(element, DATA_KEY$2);
- var _config = _objectSpread2({}, Default, {}, Manipulator.getDataAttributes(element));
+ var _config = _objectSpread2(_objectSpread2({}, Default), Manipulator.getDataAttributes(element));
if (typeof config === 'object') {
- _config = _objectSpread2({}, _config, {}, config);
+ _config = _objectSpread2(_objectSpread2({}, _config), config);
}
var action = typeof config === 'string' ? config : _config.slide;
@@ -1719,7 +1686,7 @@ var Carousel = /*#__PURE__*/function () {
return;
}
- var config = _objectSpread2({}, Manipulator.getDataAttributes(target), {}, Manipulator.getDataAttributes(this));
+ var config = _objectSpread2(_objectSpread2({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this));
var slideIndex = this.getAttribute('data-slide-to');
@@ -1950,9 +1917,7 @@ var Collapse = /*#__PURE__*/function () {
var complete = function complete() {
_this._element.classList.remove(CLASS_NAME_COLLAPSING);
- _this._element.classList.add(CLASS_NAME_COLLAPSE);
-
- _this._element.classList.add(CLASS_NAME_SHOW);
+ _this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
_this._element.style[dimension] = '';
@@ -1989,9 +1954,7 @@ var Collapse = /*#__PURE__*/function () {
this._element.classList.add(CLASS_NAME_COLLAPSING);
- this._element.classList.remove(CLASS_NAME_COLLAPSE);
-
- this._element.classList.remove(CLASS_NAME_SHOW);
+ this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
var triggerArrayLength = this._triggerArray.length;
@@ -2040,7 +2003,7 @@ var Collapse = /*#__PURE__*/function () {
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default$1, {}, config);
+ config = _objectSpread2(_objectSpread2({}, Default$1), config);
config.toggle = Boolean(config.toggle); // Coerce string values
typeCheckConfig(NAME$3, config, DefaultType$1);
@@ -2098,9 +2061,9 @@ var Collapse = /*#__PURE__*/function () {
Collapse.collapseInterface = function collapseInterface(element, config) {
var data = Data.getData(element, DATA_KEY$3);
- var _config = _objectSpread2({}, Default$1, {}, Manipulator.getDataAttributes(element), {}, typeof config === 'object' && config ? config : {});
+ var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$1), Manipulator.getDataAttributes(element)), typeof config === 'object' && config ? config : {});
- if (!data && _config.toggle && /show|hide/.test(config)) {
+ if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
_config.toggle = false;
}
@@ -2208,19 +2171,14 @@ var VERSION$4 = '4.3.1';
var DATA_KEY$4 = 'bs.dropdown';
var EVENT_KEY$4 = "." + DATA_KEY$4;
var DATA_API_KEY$4 = '.data-api';
-var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
-
-var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
-
-var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
-
-var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
-
-var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
-
-var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
-
-var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
+var ESCAPE_KEY = 'Escape';
+var SPACE_KEY = 'Space';
+var TAB_KEY = 'Tab';
+var ARROW_UP_KEY = 'ArrowUp';
+var ARROW_DOWN_KEY = 'ArrowDown';
+var RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button
+
+var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEY + "|" + ARROW_DOWN_KEY + "|" + ESCAPE_KEY);
var EVENT_HIDE$1 = "hide" + EVENT_KEY$4;
var EVENT_HIDDEN$1 = "hidden" + EVENT_KEY$4;
var EVENT_SHOW$1 = "show" + EVENT_KEY$4;
@@ -2350,7 +2308,7 @@ var Dropdown = /*#__PURE__*/function () {
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
- if ('ontouchstart' in document.documentElement && !SelectorEngine.closest(parent, SELECTOR_NAVBAR_NAV)) {
+ if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {
var _ref;
(_ref = []).concat.apply(_ref, document.body.children).forEach(function (elem) {
@@ -2425,7 +2383,7 @@ var Dropdown = /*#__PURE__*/function () {
};
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, this.constructor.Default, {}, Manipulator.getDataAttributes(this._element), {}, config);
+ config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), Manipulator.getDataAttributes(this._element)), config);
typeCheckConfig(NAME$4, config, this.constructor.DefaultType);
return config;
};
@@ -2456,7 +2414,7 @@ var Dropdown = /*#__PURE__*/function () {
};
_proto._detectNavbar = function _detectNavbar() {
- return Boolean(SelectorEngine.closest(this._element, "." + CLASS_NAME_NAVBAR));
+ return Boolean(this._element.closest("." + CLASS_NAME_NAVBAR));
};
_proto._getOffset = function _getOffset() {
@@ -2466,7 +2424,7 @@ var Dropdown = /*#__PURE__*/function () {
if (typeof this._config.offset === 'function') {
offset.fn = function (data) {
- data.offsets = _objectSpread2({}, data.offsets, {}, _this2._config.offset(data.offsets, _this2._element) || {});
+ data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this2._config.offset(data.offsets, _this2._element) || {});
return data;
};
} else {
@@ -2496,7 +2454,7 @@ var Dropdown = /*#__PURE__*/function () {
};
}
- return _objectSpread2({}, popperConfig, {}, this._config.popperConfig);
+ return _objectSpread2(_objectSpread2({}, popperConfig), this._config.popperConfig);
} // Static
;
@@ -2525,7 +2483,7 @@ var Dropdown = /*#__PURE__*/function () {
};
Dropdown.clearMenus = function clearMenus(event) {
- if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
+ if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) {
return;
}
@@ -2552,7 +2510,7 @@ var Dropdown = /*#__PURE__*/function () {
continue;
}
- if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && dropdownMenu.contains(event.target)) {
+ if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.key === TAB_KEY) && dropdownMenu.contains(event.target)) {
continue;
}
@@ -2596,7 +2554,7 @@ var Dropdown = /*#__PURE__*/function () {
// - If key is other than escape
// - If key is not up or down => not a dropdown command
// - If trigger inside the menu => not a dropdown command
- if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || SelectorEngine.closest(event.target, SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.which)) {
+ if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) {
return;
}
@@ -2610,14 +2568,14 @@ var Dropdown = /*#__PURE__*/function () {
var parent = Dropdown.getParentFromElement(this);
var isActive = this.classList.contains(CLASS_NAME_SHOW$1);
- if (event.which === ESCAPE_KEYCODE) {
+ if (event.key === ESCAPE_KEY) {
var button = this.matches(SELECTOR_DATA_TOGGLE$2) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$2)[0];
button.focus();
Dropdown.clearMenus();
return;
}
- if (!isActive || event.which === SPACE_KEYCODE) {
+ if (!isActive || event.key === SPACE_KEY) {
Dropdown.clearMenus();
return;
}
@@ -2628,18 +2586,20 @@ var Dropdown = /*#__PURE__*/function () {
return;
}
- var index = items.indexOf(event.target) || 0;
+ var index = items.indexOf(event.target);
- if (event.which === ARROW_UP_KEYCODE && index > 0) {
+ if (event.key === ARROW_UP_KEY && index > 0) {
// Up
index--;
}
- if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
+ if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
// Down
index++;
- }
+ } // index is -1 if the first keydown is an ArrowUp
+
+ index = index === -1 ? 0 : index;
items[index].focus();
};
@@ -2717,8 +2677,7 @@ var VERSION$5 = '4.3.1';
var DATA_KEY$5 = 'bs.modal';
var EVENT_KEY$5 = "." + DATA_KEY$5;
var DATA_API_KEY$5 = '.data-api';
-var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key
-
+var ESCAPE_KEY$1 = 'Escape';
var Default$3 = {
backdrop: true,
keyboard: true,
@@ -2743,7 +2702,6 @@ var EVENT_KEYDOWN_DISMISS = "keydown.dismiss" + EVENT_KEY$5;
var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY$5;
var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY$5;
var EVENT_CLICK_DATA_API$5 = "click" + EVENT_KEY$5 + DATA_API_KEY$5;
-var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';
var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
var CLASS_NAME_BACKDROP = 'modal-backdrop';
var CLASS_NAME_OPEN = 'modal-open';
@@ -2907,7 +2865,7 @@ var Modal = /*#__PURE__*/function () {
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default$3, {}, config);
+ config = _objectSpread2(_objectSpread2({}, Default$3), config);
typeCheckConfig(NAME$5, config, DefaultType$3);
return config;
};
@@ -2930,10 +2888,10 @@ var Modal = /*#__PURE__*/function () {
this._element.setAttribute('aria-modal', true);
- if (this._dialog.classList.contains(CLASS_NAME_SCROLLABLE) && modalBody) {
+ this._element.scrollTop = 0;
+
+ if (modalBody) {
modalBody.scrollTop = 0;
- } else {
- this._element.scrollTop = 0;
}
if (transition) {
@@ -2983,11 +2941,11 @@ var Modal = /*#__PURE__*/function () {
if (this._isShown) {
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {
- if (_this5._config.keyboard && event.which === ESCAPE_KEYCODE$1) {
+ if (_this5._config.keyboard && event.key === ESCAPE_KEY$1) {
event.preventDefault();
_this5.hide();
- } else if (!_this5._config.keyboard && event.which === ESCAPE_KEYCODE$1) {
+ } else if (!_this5._config.keyboard && event.key === ESCAPE_KEY$1) {
_this5._triggerBackdropTransition();
}
});
@@ -3145,7 +3103,7 @@ var Modal = /*#__PURE__*/function () {
_proto._checkScrollbar = function _checkScrollbar() {
var rect = document.body.getBoundingClientRect();
- this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
+ this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
this._scrollbarWidth = this._getScrollbarWidth();
};
@@ -3224,7 +3182,7 @@ var Modal = /*#__PURE__*/function () {
return this.each(function () {
var data = Data.getData(this, DATA_KEY$5);
- var _config = _objectSpread2({}, Default$3, {}, Manipulator.getDataAttributes(this), {}, typeof config === 'object' && config ? config : {});
+ var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$3), Manipulator.getDataAttributes(this)), typeof config === 'object' && config ? config : {});
if (!data) {
data = new Modal(this, _config);
@@ -3291,7 +3249,7 @@ EventHandler.on(document, EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, functi
var data = Data.getData(target, DATA_KEY$5);
if (!data) {
- var config = _objectSpread2({}, Manipulator.getDataAttributes(target), {}, Manipulator.getDataAttributes(this));
+ var config = _objectSpread2(_objectSpread2({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this));
data = new Modal(target, config);
}
@@ -3575,11 +3533,11 @@ var Tooltip = /*#__PURE__*/function () {
if (event) {
var dataKey = this.constructor.DATA_KEY;
- var context = Data.getData(event.delegateTarget, dataKey);
+ var context = Data.getData(event.target, dataKey);
if (!context) {
- context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
- Data.setData(event.delegateTarget, dataKey, context);
+ context = new this.constructor(event.target, this._getDelegateConfig());
+ Data.setData(event.target, dataKey, context);
}
context._activeTrigger.click = !context._activeTrigger.click;
@@ -3604,7 +3562,7 @@ var Tooltip = /*#__PURE__*/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, "." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
+ EventHandler.off(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
if (this.tip) {
this.tip.parentNode.removeChild(this.tip);
@@ -3780,8 +3738,7 @@ var Tooltip = /*#__PURE__*/function () {
_proto.setContent = function setContent() {
var tip = this.getTipElement();
this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle());
- tip.classList.remove(CLASS_NAME_FADE$1);
- tip.classList.remove(CLASS_NAME_SHOW$3);
+ tip.classList.remove(CLASS_NAME_FADE$1, CLASS_NAME_SHOW$3);
};
_proto.setElementContent = function setElementContent(element, content) {
@@ -3801,7 +3758,7 @@ var Tooltip = /*#__PURE__*/function () {
element.appendChild(content);
}
} else {
- element.innerText = content.textContent;
+ element.textContent = content.textContent;
}
return;
@@ -3814,7 +3771,7 @@ var Tooltip = /*#__PURE__*/function () {
element.innerHTML = content;
} else {
- element.innerText = content;
+ element.textContent = content;
}
};
@@ -3855,7 +3812,7 @@ var Tooltip = /*#__PURE__*/function () {
return _this3._handlePopperPlacementChange(data);
}
};
- return _objectSpread2({}, defaultBsConfig, {}, this.config.popperConfig);
+ return _objectSpread2(_objectSpread2({}, defaultBsConfig), this.config.popperConfig);
};
_proto._addAttachmentClass = function _addAttachmentClass(attachment) {
@@ -3869,7 +3826,7 @@ var Tooltip = /*#__PURE__*/function () {
if (typeof this.config.offset === 'function') {
offset.fn = function (data) {
- data.offsets = _objectSpread2({}, data.offsets, {}, _this4.config.offset(data.offsets, _this4.element) || {});
+ data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this4.config.offset(data.offsets, _this4.element) || {});
return data;
};
} else {
@@ -3922,10 +3879,10 @@ var Tooltip = /*#__PURE__*/function () {
}
};
- EventHandler.on(SelectorEngine.closest(this.element, "." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
+ EventHandler.on(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
if (this.config.selector) {
- this.config = _objectSpread2({}, this.config, {
+ this.config = _objectSpread2(_objectSpread2({}, this.config), {}, {
trigger: 'manual',
selector: ''
});
@@ -3945,11 +3902,11 @@ var Tooltip = /*#__PURE__*/function () {
_proto._enter = function _enter(event, context) {
var dataKey = this.constructor.DATA_KEY;
- context = context || Data.getData(event.delegateTarget, dataKey);
+ context = context || Data.getData(event.target, dataKey);
if (!context) {
- context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
- Data.setData(event.delegateTarget, dataKey, context);
+ context = new this.constructor(event.target, this._getDelegateConfig());
+ Data.setData(event.target, dataKey, context);
}
if (event) {
@@ -3978,11 +3935,11 @@ var Tooltip = /*#__PURE__*/function () {
_proto._leave = function _leave(event, context) {
var dataKey = this.constructor.DATA_KEY;
- context = context || Data.getData(event.delegateTarget, dataKey);
+ context = context || Data.getData(event.target, dataKey);
if (!context) {
- context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
- Data.setData(event.delegateTarget, dataKey, context);
+ context = new this.constructor(event.target, this._getDelegateConfig());
+ Data.setData(event.target, dataKey, context);
}
if (event) {
@@ -4030,7 +3987,7 @@ var Tooltip = /*#__PURE__*/function () {
config.container = config.container[0];
}
- config = _objectSpread2({}, this.constructor.Default, {}, dataAttributes, {}, typeof config === 'object' && config ? config : {});
+ config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), dataAttributes), typeof config === 'object' && config ? config : {});
if (typeof config.delay === 'number') {
config.delay = {
@@ -4210,14 +4167,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 = _objectSpread2({}, Tooltip.Default, {
+var Default$5 = _objectSpread2(_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 = _objectSpread2({}, Tooltip.DefaultType, {
+var DefaultType$5 = _objectSpread2(_objectSpread2({}, Tooltip.DefaultType), {}, {
content: '(string|element|function)'
});
@@ -4269,8 +4226,7 @@ var Popover = /*#__PURE__*/function (_Tooltip) {
}
this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content);
- tip.classList.remove(CLASS_NAME_FADE$2);
- tip.classList.remove(CLASS_NAME_SHOW$4);
+ tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$4);
};
_proto._addAttachmentClass = function _addAttachmentClass(attachment) {
@@ -4506,9 +4462,9 @@ var ScrollSpy = /*#__PURE__*/function () {
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default$6, {}, typeof config === 'object' && config ? config : {});
+ config = _objectSpread2(_objectSpread2({}, Default$6), typeof config === 'object' && config ? config : {});
- if (typeof config.target !== 'string') {
+ if (typeof config.target !== 'string' && isElement(config.target)) {
var id = config.target.id;
if (!id) {
@@ -4564,9 +4520,7 @@ var ScrollSpy = /*#__PURE__*/function () {
return;
}
- var offsetLength = this._offsets.length;
-
- for (var i = offsetLength; i--;) {
+ for (var i = this._offsets.length; i--;) {
var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
if (isActiveTarget) {
@@ -4587,7 +4541,7 @@ var ScrollSpy = /*#__PURE__*/function () {
var link = SelectorEngine.findOne(queries.join(','));
if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
- SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, SelectorEngine.closest(link, SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$2);
+ SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$2);
link.classList.add(CLASS_NAME_ACTIVE$2);
} else {
// Set triggered link as active
@@ -4744,7 +4698,8 @@ var Tab = /*#__PURE__*/function () {
var previous;
var target = getElementFromSelector(this._element);
- var listElement = SelectorEngine.closest(this._element, SELECTOR_NAV_LIST_GROUP$1);
+
+ var listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP$1);
if (listElement) {
var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$2;
@@ -4840,7 +4795,7 @@ var Tab = /*#__PURE__*/function () {
}
if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {
- var dropdownElement = SelectorEngine.closest(element, SELECTOR_DROPDOWN$1);
+ var dropdownElement = element.closest(SELECTOR_DROPDOWN$1);
if (dropdownElement) {
SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE$1).forEach(function (dropdown) {
@@ -5056,7 +5011,7 @@ var Toast = /*#__PURE__*/function () {
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default$7, {}, Manipulator.getDataAttributes(this._element), {}, typeof config === 'object' && config ? config : {});
+ config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$7), Manipulator.getDataAttributes(this._element)), typeof config === 'object' && config ? config : {});
typeCheckConfig(NAME$a, config, this.constructor.DefaultType);
return config;
};
diff --git a/dist/js/bootstrap.esm.js.map b/dist/js/bootstrap.esm.js.map
index c73b678b67..da26a03c58 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"],"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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = 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() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\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 element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n 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 isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\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 find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('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\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (_) {\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 find,\n findOne,\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 { getjQuery } from '../util/index'\nimport { defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst $ = getjQuery()\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.slice(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 && $) {\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 = new CustomEvent(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 } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n return [].concat(...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 = [].concat(...element.children)\n\n return children.filter(child => child.matches(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 element.closest(selector)\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\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_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\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 let parent = getElementFromSelector(element)\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif ($) {\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 { getjQuery } 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 CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"buttons\"]'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_BLUR_DATA_API = `blur${EVENT_KEY}${DATA_API_KEY}`\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 && input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains(CLASS_NAME_DISABLED) ||\n rootElement.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n input.checked = !this._element.classList.contains(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_FOCUS)\n }\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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'\n\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = 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 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(CLASS_NAME_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 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(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_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 = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_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 target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_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 = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\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_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = 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(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = 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(CLASS_NAME_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(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_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(WIDTH)\n return hasWidth ? WIDTH : 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 = `${SELECTOR_DATA_TOGGLE}[data-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\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(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_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 = 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getElementFromSelector,\n isElement,\n isVisible,\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'\n\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)\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n 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(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_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(this._element, 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 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(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !SelectorEngine.closest(parent, SELECTOR_NAVBAR_NAV)) {\n [].concat(...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, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_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 if (this._popper) {\n this._popper.destroy()\n }\n\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_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) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\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 return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = PLACEMENT_TOP\n if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_TOPEND\n }\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, `.${CLASS_NAME_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 {\n ...popperConfig,\n ...this._config.popperConfig\n }\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 = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = 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 (!toggles[i].classList.contains(CLASS_NAME_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 dropdownMenu.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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || 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(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.which === ESCAPE_KEYCODE) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.which === SPACE_KEYCODE) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent)\n .filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target) || 0\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 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\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(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.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(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (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) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else {\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(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n 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 this._triggerBackdropTransition()\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_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(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_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 _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._element)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\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 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 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(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n 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 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 = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.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 target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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\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,[\\d+/a-z]+=*$/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 SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\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', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\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 = [].concat(...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 = [].concat(...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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\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 popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"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 popperConfig: null\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 CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.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(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n 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, `.${CLASS_NAME_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) {\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(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n 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, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_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 [].concat(...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 === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_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 !== HOVER_STATE_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(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...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(CLASS_NAME_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(CLASS_NAME_FADE)\n tip.classList.remove(CLASS_NAME_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 _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${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 return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\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, `.${CLASS_NAME_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(CLASS_NAME_SHOW) ||\n context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || 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 = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = 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 > 0) {\n tabClass.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(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 { getjQuery } 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 Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\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 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(CLASS_NAME_FADE)\n tip.classList.remove(CLASS_NAME_SHOW)\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\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 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getSelectorFromElement,\n getUID,\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_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} .${CLASS_NAME_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 METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = 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(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(SELECTOR_DROPDOWN_TOGGLE, SelectorEngine.closest(link, SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = 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 SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\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_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\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(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = SelectorEngine.closest(this._element, SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = 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 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\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_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n 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(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n 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(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_HIDE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_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(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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","toType","obj","undefined","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","find","Element","prototype","querySelectorAll","findOne","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","scopeSelectorRegex","supportScopeQuery","_","hasId","Boolean","nodeList","replace","removeAttribute","matches","$","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","slice","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","NODE_TEXT","SelectorEngine","concat","findFn","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","previous","previousElementSibling","next","nextElementSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASSNAME_ALERT","CLASSNAME_FADE","CLASSNAME_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","CLASS_NAME_ACTIVE","CLASS_NAME_BUTTON","CLASS_NAME_DISABLED","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLE","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_FOCUS_DATA_API","EVENT_BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","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","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","_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","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_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","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_NAVBAR","CLASS_NAME_POSITION_STATIC","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","flip","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","clearMenus","getParentFromElement","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","modalTransitionDuration","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","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","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_MODAL","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","defaultBsConfig","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_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","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast"],"mappings":"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"} \ 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/alert.js","../../js/src/dom/selector-engine.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"],"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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = 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() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\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 element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n 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 isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\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 find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('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\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (_) {\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 find,\n findOne,\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 { getjQuery } from '../util/index'\nimport { defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst $ = getjQuery()\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\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 bootstrapHandler(element, fn) {\n return function handler(event) {\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 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.slice(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 && $) {\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 = new CustomEvent(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): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\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_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\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 return getElementFromSelector(element) || element.closest(`.${CLASSNAME_ALERT}`)\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif ($) {\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): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n return [].concat(...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 = [].concat(...element.children)\n\n return children.filter(child => child.matches(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 prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n }\n}\n\nexport default SelectorEngine\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 { getjQuery } 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 CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"buttons\"]'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_BLUR_DATA_API = `blur${EVENT_KEY}${DATA_API_KEY}`\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 = this._element.closest(SELECTOR_DATA_TOGGLE)\n\n if (rootElement) {\n const input = SelectorEngine.findOne(SELECTOR_INPUT, this._element)\n\n if (input && input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains(CLASS_NAME_DISABLED) ||\n rootElement.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n input.checked = !this._element.classList.contains(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(CLASS_NAME_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 const button = event.target.closest(SELECTOR_BUTTON)\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 = event.target.closest(SELECTOR_BUTTON)\n\n if (button) {\n button.classList.add(CLASS_NAME_FOCUS)\n }\n})\n\nEventHandler.on(document, EVENT_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = event.target.closest(SELECTOR_BUTTON)\n\n if (button) {\n button.classList.remove(CLASS_NAME_FOCUS)\n }\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\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 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(CLASS_NAME_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.key) {\n case ARROW_LEFT_KEY:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEY:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n 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(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_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 = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_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(CLASS_NAME_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, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, 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(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_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 target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_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 = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\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_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = 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(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = 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(CLASS_NAME_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(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_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(WIDTH)\n return hasWidth ? WIDTH : 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 = `${SELECTOR_DATA_TOGGLE}[data-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\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(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_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 && typeof config === 'string' && /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 = 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getElementFromSelector,\n isElement,\n isVisible,\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'\n\nconst ESCAPE_KEY = 'Escape'\nconst SPACE_KEY = 'Space'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n 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(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_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(this._element, 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 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(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...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, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_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 if (this._popper) {\n this._popper.destroy()\n }\n\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_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) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\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 return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = PLACEMENT_TOP\n if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_TOPEND\n }\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(this._element.closest(`.${CLASS_NAME_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 {\n ...popperConfig,\n ...this._config.popperConfig\n }\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.button === RIGHT_MOUSE_BUTTON ||\n (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = 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 (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && ((event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName)) ||\n (event.type === 'keyup' && event.key === TAB_KEY)) &&\n dropdownMenu.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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || 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.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent)\n .filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.key === ARROW_UP_KEY && index > 0) { // Up\n index--\n }\n\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) { // Down\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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_KEY = 'Escape'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.scrollTop = 0\n\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (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) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n 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 this._triggerBackdropTransition()\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_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(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_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 _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._element)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\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 = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n 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 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(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n 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 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 = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.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 target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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\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,[\\d+/a-z]+=*$/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 SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\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', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\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 = [].concat(...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 = [].concat(...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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\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 popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"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 popperConfig: null\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 CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.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.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, 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(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(this.element.closest(`.${CLASS_NAME_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) {\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(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n 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, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_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 [].concat(...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 === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_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 !== HOVER_STATE_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(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...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(CLASS_NAME_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(CLASS_NAME_FADE, CLASS_NAME_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.textContent = 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.textContent = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${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 return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\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(this.element.closest(`.${CLASS_NAME_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.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, 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(CLASS_NAME_SHOW) ||\n context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = 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 > 0) {\n tabClass.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(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 { getjQuery } 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 Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\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 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(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\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 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getSelectorFromElement,\n getUID,\n isElement,\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_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} .${CLASS_NAME_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 METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = 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' && isElement(config.target)) {\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 for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.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(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = 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 SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\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_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\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(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = 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 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\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_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n 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(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n 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(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_HIDE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_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(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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","toType","obj","undefined","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","find","Element","prototype","querySelectorAll","findOne","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","scopeSelectorRegex","supportScopeQuery","_","hasId","Boolean","nodeList","replace","removeAttribute","matches","$","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","bootstrapHandler","fn","handler","event","oneOff","EventHandler","off","type","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","slice","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASSNAME_ALERT","CLASSNAME_FADE","CLASSNAME_SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","closest","classList","remove","contains","_destroyElement","removeChild","jQueryInterface","each","handleDismiss","alertInstance","getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","NODE_TEXT","SelectorEngine","concat","findFn","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","previous","previousElementSibling","next","nextElementSibling","CLASS_NAME_ACTIVE","CLASS_NAME_DISABLED","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLE","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_FOCUS_DATA_API","EVENT_BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_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","parent","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_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_KEY","SPACE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_NAVBAR","CLASS_NAME_POSITION_STATIC","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","flip","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","clearMenus","getParentFromElement","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","modalTransitionDuration","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","round","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","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","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_MODAL","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","defaultBsConfig","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_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","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","CLASS_NAME_HIDE","CLASS_NAME_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 cd15ae7d64..cf17ca0eb4 100644
--- a/dist/js/bootstrap.esm.min.js
+++ b/dist/js/bootstrap.esm.min.js
@@ -3,5 +3,5 @@
* Copyright 2011-2020 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 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(Object(n),!0).forEach((function(t){_defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(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",toType=function(e){return null==e?""+e:{}.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},getSelector=function(e){var t=e.getAttribute("data-target");if(!t||"#"===t){var n=e.getAttribute("href");t=n&&"#"!==n?n.trim():null}return t},getSelectorFromElement=function(e){var t=getSelector(e);return t&&document.querySelector(t)?t:null},getElementFromSelector=function(e){var t=getSelector(e);return t?document.querySelector(t):null},getTransitionDurationFromElement=function(e){if(!e)return 0;var t=window.getComputedStyle(e),n=t.transitionDuration,i=t.transitionDelay,r=parseFloat(n),o=parseFloat(i);return r||o?(n=n.split(",")[0],i=i.split(",")[0],(parseFloat(n)+parseFloat(i))*MILLISECONDS_MULTIPLIER):0},triggerTransitionEnd=function(e){e.dispatchEvent(new Event(TRANSITION_END))},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],o=t[i],a=o&&isElement(o)?"element":toType(o);if(!new RegExp(r).test(a))throw new Error(e.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+r+'".')}))},isVisible=function(e){if(!e)return!1;if(e.style&&e.parentNode&&e.parentNode.style){var t=getComputedStyle(e),n=getComputedStyle(e.parentNode);return"none"!==t.display&&"none"!==n.display&&"hidden"!==t.visibility}return!1},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},getjQuery=function(){var e=window.jQuery;return e&&!document.body.hasAttribute("data-no-jquery")?e:null},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)}},find=Element.prototype.querySelectorAll,findOne=Element.prototype.querySelector,defaultPreventedPreservedOnDispatch=function(){var e=new CustomEvent("Bootstrap",{cancelable:!0}),t=document.createElement("div");return t.addEventListener("Bootstrap",(function(){return null})),e.preventDefault(),t.dispatchEvent(e),e.defaultPrevented}(),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 $=getjQuery(),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 o=e.querySelectorAll(t),a=r.target;a&&a!==this;a=a.parentNode)for(var s=o.length;s--;)if(o[s]===a)return fixEvent(r,a),i.oneOff&&EventHandler.off(e,r.type,n),n.apply(a,[r]);return null}}function findHandler(e,t,n){void 0===n&&(n=null);for(var i=Object.keys(e),r=0,o=i.length;r<o;r++){var a=e[i[r]];if(a.originalHandler===t&&a.delegationSelector===n)return a}return null}function normalizeParams(e,t,n){var i="string"==typeof t,r=i?n:t,o=e.replace(stripNameRegex,""),a=customEvents[o];return a&&(o=a),nativeEvents.indexOf(o)>-1||(o=e),[i,r,o]}function addHandler(e,t,n,i,r){if("string"==typeof t&&e){n||(n=i,i=null);var o=normalizeParams(t,n,i),a=o[0],s=o[1],E=o[2],l=getEvent(e),_=l[E]||(l[E]={}),c=findHandler(_,s,a?n:null);if(c)c.oneOff=c.oneOff&&r;else{var u=getUidEvent(s,t.replace(namespaceRegex,"")),f=a?bootstrapDelegationHandler(e,n,i):bootstrapHandler(e,n);f.delegationSelector=a?n:null,f.originalHandler=s,f.oneOff=r,f.uidEvent=u,_[u]=f,e.addEventListener(E,f,a)}}}function removeHandler(e,t,n,i,r){var o=findHandler(t[n],i,r);o&&(e.removeEventListener(n,o,Boolean(r)),delete t[n][o.uidEvent])}function removeNamespacedHandlers(e,t,n,i){var r=t[n]||{};Object.keys(r).forEach((function(o){if(o.indexOf(i)>-1){var a=r[o];removeHandler(e,t,n,a.originalHandler,a.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),o=r[0],a=r[1],s=r[2],E=s!==t,l=getEvent(e),_="."===t.charAt(0);if(void 0===a){_&&Object.keys(l).forEach((function(n){removeNamespacedHandlers(e,l,n,t.slice(1))}));var c=l[s]||{};Object.keys(c).forEach((function(n){var i=n.replace(stripUidRegex,"");if(!E||t.indexOf(i)>-1){var r=c[n];removeHandler(e,l,s,r.originalHandler,r.delegationSelector)}}))}else{if(!l||!l[s])return;removeHandler(e,l,s,a,o?n:null)}}},trigger:function(e,t,n){if("string"!=typeof t||!e)return null;var i,r=t.replace(stripNameRegex,""),o=t!==r,a=nativeEvents.indexOf(r)>-1,s=!0,E=!0,l=!1,_=null;return o&&$&&(i=$.Event(t,n),$(e).trigger(i),s=!i.isPropagationStopped(),E=!i.isImmediatePropagationStopped(),l=i.isDefaultPrevented()),a?(_=document.createEvent("HTMLEvents")).initEvent(r,s,!0):_=new CustomEvent(t,{bubbles:s,cancelable:!0}),void 0!==n&&Object.keys(n).forEach((function(e){Object.defineProperty(_,e,{get:function(){return n[e]}})})),l&&(_.preventDefault(),defaultPreventedPreservedOnDispatch||Object.defineProperty(_,"defaultPrevented",{get:function(){return!0}})),E&&e.dispatchEvent(_),_.defaultPrevented&&void 0!==i&&i.preventDefault(),_}},NODE_TEXT=3,SelectorEngine={matches:function(e,t){return e.matches(t)},find:function(e,t){var n;return void 0===t&&(t=document.documentElement),(n=[]).concat.apply(n,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,i=(n=[]).concat.apply(n,e.children);return i.filter((function(e){return e.matches(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 e.closest(t)},prev:function(e,t){for(var n=e.previousElementSibling;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next:function(e,t){for(var n=e.nextElementSibling;n;){if(this.matches(n,t))return[n];n=n.nextElementSibling}return[]}},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_CLOSE="close"+EVENT_KEY,EVENT_CLOSED="closed"+EVENT_KEY,EVENT_CLICK_DATA_API="click"+EVENT_KEY+DATA_API_KEY,CLASSNAME_ALERT="alert",CLASSNAME_FADE="fade",CLASSNAME_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=getElementFromSelector(e);return t||(t=SelectorEngine.closest(e,"."+CLASSNAME_ALERT)),t},t._triggerCloseEvent=function(e){return EventHandler.trigger(e,EVENT_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_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}();EventHandler.on(document,EVENT_CLICK_DATA_API,SELECTOR_DISMISS,Alert.handleDismiss(new Alert));var $$1=getjQuery();if($$1){var JQUERY_NO_CONFLICT=$$1.fn[NAME];$$1.fn[NAME]=Alert.jQueryInterface,$$1.fn[NAME].Constructor=Alert,$$1.fn[NAME].noConflict=function(){return $$1.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",CLASS_NAME_ACTIVE="active",CLASS_NAME_BUTTON="btn",CLASS_NAME_DISABLED="disabled",CLASS_NAME_FOCUS="focus",SELECTOR_DATA_TOGGLE_CARROT='[data-toggle^="button"]',SELECTOR_DATA_TOGGLE='[data-toggle="buttons"]',SELECTOR_INPUT='input:not([type="hidden"])',SELECTOR_ACTIVE=".active",SELECTOR_BUTTON=".btn",EVENT_CLICK_DATA_API$1="click"+EVENT_KEY$1+DATA_API_KEY$1,EVENT_FOCUS_DATA_API="focus"+EVENT_KEY$1+DATA_API_KEY$1,EVENT_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_DATA_TOGGLE);if(n){var i=SelectorEngine.findOne(SELECTOR_INPUT,this._element);if(i&&"radio"===i.type){if(i.checked&&this._element.classList.contains(CLASS_NAME_ACTIVE))e=!1;else{var r=SelectorEngine.findOne(SELECTOR_ACTIVE,n);r&&r.classList.remove(CLASS_NAME_ACTIVE)}if(e){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains(CLASS_NAME_DISABLED)||n.classList.contains(CLASS_NAME_DISABLED))return;i.checked=!this._element.classList.contains(CLASS_NAME_ACTIVE),EventHandler.trigger(i,"change")}i.focus(),t=!1}}t&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(CLASS_NAME_ACTIVE)),e&&this._element.classList.toggle(CLASS_NAME_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}();EventHandler.on(document,EVENT_CLICK_DATA_API$1,SELECTOR_DATA_TOGGLE_CARROT,(function(e){e.preventDefault();var t=e.target;t.classList.contains(CLASS_NAME_BUTTON)||(t=SelectorEngine.closest(t,SELECTOR_BUTTON));var n=Data.getData(t,DATA_KEY$1);n||(n=new Button(t)),n.toggle()})),EventHandler.on(document,EVENT_FOCUS_DATA_API,SELECTOR_DATA_TOGGLE_CARROT,(function(e){var t=SelectorEngine.closest(e.target,SELECTOR_BUTTON);t&&t.classList.add(CLASS_NAME_FOCUS)})),EventHandler.on(document,EVENT_BLUR_DATA_API,SELECTOR_DATA_TOGGLE_CARROT,(function(e){var t=SelectorEngine.closest(e.target,SELECTOR_BUTTON);t&&t.classList.remove(CLASS_NAME_FOCUS)}));var $$2=getjQuery();if($$2){var JQUERY_NO_CONFLICT$1=$$2.fn[NAME$1];$$2.fn[NAME$1]=Button.jQueryInterface,$$2.fn[NAME$1].Constructor=Button,$$2.fn[NAME$1].noConflict=function(){return $$2.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",DIRECTION_PREV="prev",DIRECTION_LEFT="left",DIRECTION_RIGHT="right",EVENT_SLIDE="slide"+EVENT_KEY$2,EVENT_SLID="slid"+EVENT_KEY$2,EVENT_KEYDOWN="keydown"+EVENT_KEY$2,EVENT_MOUSEENTER="mouseenter"+EVENT_KEY$2,EVENT_MOUSELEAVE="mouseleave"+EVENT_KEY$2,EVENT_TOUCHSTART="touchstart"+EVENT_KEY$2,EVENT_TOUCHMOVE="touchmove"+EVENT_KEY$2,EVENT_TOUCHEND="touchend"+EVENT_KEY$2,EVENT_POINTERDOWN="pointerdown"+EVENT_KEY$2,EVENT_POINTERUP="pointerup"+EVENT_KEY$2,EVENT_DRAG_START="dragstart"+EVENT_KEY$2,EVENT_LOAD_DATA_API="load"+EVENT_KEY$2+DATA_API_KEY$2,EVENT_CLICK_DATA_API$2="click"+EVENT_KEY$2+DATA_API_KEY$2,CLASS_NAME_CAROUSEL="carousel",CLASS_NAME_ACTIVE$1="active",CLASS_NAME_SLIDE="slide",CLASS_NAME_RIGHT="carousel-item-right",CLASS_NAME_LEFT="carousel-item-left",CLASS_NAME_NEXT="carousel-item-next",CLASS_NAME_PREV="carousel-item-prev",CLASS_NAME_POINTER_EVENT="pointer-event",SELECTOR_ACTIVE$1=".active",SELECTOR_ACTIVE_ITEM=".active.carousel-item",SELECTOR_ITEM=".carousel-item",SELECTOR_ITEM_IMG=".carousel-item img",SELECTOR_NEXT_PREV=".carousel-item-next, .carousel-item-prev",SELECTOR_INDICATORS=".carousel-indicators",SELECTOR_DATA_SLIDE="[data-slide], [data-slide-to]",SELECTOR_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_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_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_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_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_KEYDOWN,(function(t){return e._keydown(t)})),"hover"===this._config.pause&&(EventHandler.on(this._element,EVENT_MOUSEENTER,(function(t){return e.pause(t)})),EventHandler.on(this._element,EVENT_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))};SelectorEngine.find(SELECTOR_ITEM_IMG,this._element).forEach((function(e){EventHandler.on(e,EVENT_DRAG_START,(function(e){return e.preventDefault()}))})),this._pointerEvent?(EventHandler.on(this._element,EVENT_POINTERDOWN,(function(e){return t(e)})),EventHandler.on(this._element,EVENT_POINTERUP,(function(e){return n(e)})),this._element.classList.add(CLASS_NAME_POINTER_EVENT)):(EventHandler.on(this._element,EVENT_TOUCHSTART,(function(e){return t(e)})),EventHandler.on(this._element,EVENT_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_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?SelectorEngine.find(SELECTOR_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),o=this._items.length-1;if((i&&0===r||n&&r===o)&&!this._config.wrap)return t;var a=(r+(e===DIRECTION_PREV?-1:1))%this._items.length;return-1===a?this._items[this._items.length-1]:this._items[a]},t._triggerSlideEvent=function(e,t){var n=this._getItemIndex(e),i=this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element));return EventHandler.trigger(this._element,EVENT_SLIDE,{relatedTarget:e,direction:t,from:i,to:n})},t._setActiveIndicatorElement=function(e){if(this._indicatorsElement){for(var t=SelectorEngine.find(SELECTOR_ACTIVE$1,this._indicatorsElement),n=0;n<t.length;n++)t[n].classList.remove(CLASS_NAME_ACTIVE$1);var i=this._indicatorsElement.children[this._getItemIndex(e)];i&&i.classList.add(CLASS_NAME_ACTIVE$1)}},t._slide=function(e,t){var n,i,r,o=this,a=SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element),s=this._getItemIndex(a),E=t||a&&this._getItemByDirection(e,a),l=this._getItemIndex(E),_=Boolean(this._interval);if(e===DIRECTION_NEXT?(n=CLASS_NAME_LEFT,i=CLASS_NAME_NEXT,r=DIRECTION_LEFT):(n=CLASS_NAME_RIGHT,i=CLASS_NAME_PREV,r=DIRECTION_RIGHT),E&&E.classList.contains(CLASS_NAME_ACTIVE$1))this._isSliding=!1;else if(!this._triggerSlideEvent(E,r).defaultPrevented&&a&&E){if(this._isSliding=!0,_&&this.pause(),this._setActiveIndicatorElement(E),this._element.classList.contains(CLASS_NAME_SLIDE)){E.classList.add(i),reflow(E),a.classList.add(n),E.classList.add(n);var c=parseInt(E.getAttribute("data-interval"),10);c?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=c):this._config.interval=this._config.defaultInterval||this._config.interval;var u=getTransitionDurationFromElement(a);EventHandler.one(a,TRANSITION_END,(function(){E.classList.remove(n),E.classList.remove(i),E.classList.add(CLASS_NAME_ACTIVE$1),a.classList.remove(CLASS_NAME_ACTIVE$1),a.classList.remove(i),a.classList.remove(n),o._isSliding=!1,setTimeout((function(){EventHandler.trigger(o._element,EVENT_SLID,{relatedTarget:E,direction:r,from:s,to:l})}),0)})),emulateTransitionEnd(a,u)}else a.classList.remove(CLASS_NAME_ACTIVE$1),E.classList.add(CLASS_NAME_ACTIVE$1),this._isSliding=!1,EventHandler.trigger(this._element,EVENT_SLID,{relatedTarget:E,direction:r,from:s,to:l});_&&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 o="string"==typeof n?n:r.slide;if(i||(i=new e(t,r)),"number"==typeof n)i.to(n);else if("string"==typeof o){if(void 0===i[o])throw new TypeError('No method named "'+o+'"');i[o]()}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=getElementFromSelector(this);if(n&&n.classList.contains(CLASS_NAME_CAROUSEL)){var i=_objectSpread2({},Manipulator.getDataAttributes(n),{},Manipulator.getDataAttributes(this)),r=this.getAttribute("data-slide-to");r&&(i.interval=!1),e.carouselInterface(n,i),r&&Data.getData(n,DATA_KEY$2).to(r),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}();EventHandler.on(document,EVENT_CLICK_DATA_API$2,SELECTOR_DATA_SLIDE,Carousel.dataApiClickHandler),EventHandler.on(window,EVENT_LOAD_DATA_API,(function(){for(var e=SelectorEngine.find(SELECTOR_DATA_RIDE),t=0,n=e.length;t<n;t++)Carousel.carouselInterface(e[t],Data.getData(e[t],DATA_KEY$2))}));var $$3=getjQuery();if($$3){var JQUERY_NO_CONFLICT$2=$$3.fn[NAME$2];$$3.fn[NAME$2]=Carousel.jQueryInterface,$$3.fn[NAME$2].Constructor=Carousel,$$3.fn[NAME$2].noConflict=function(){return $$3.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_SHOW="show"+EVENT_KEY$3,EVENT_SHOWN="shown"+EVENT_KEY$3,EVENT_HIDE="hide"+EVENT_KEY$3,EVENT_HIDDEN="hidden"+EVENT_KEY$3,EVENT_CLICK_DATA_API$3="click"+EVENT_KEY$3+DATA_API_KEY$3,CLASS_NAME_SHOW="show",CLASS_NAME_COLLAPSE="collapse",CLASS_NAME_COLLAPSING="collapsing",CLASS_NAME_COLLAPSED="collapsed",WIDTH="width",HEIGHT="height",SELECTOR_ACTIVES=".show, .collapsing",SELECTOR_DATA_TOGGLE$1='[data-toggle="collapse"]',Collapse=function(){function e(e,t){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(t),this._triggerArray=SelectorEngine.find(SELECTOR_DATA_TOGGLE$1+'[href="#'+e.id+'"],'+SELECTOR_DATA_TOGGLE$1+'[data-target="#'+e.id+'"]');for(var n=SelectorEngine.find(SELECTOR_DATA_TOGGLE$1),i=0,r=n.length;i<r;i++){var o=n[i],a=getSelectorFromElement(o),s=SelectorEngine.find(a).filter((function(t){return t===e}));null!==a&&s.length&&(this._selector=a,this._triggerArray.push(o))}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(CLASS_NAME_SHOW)?this.hide():this.show()},t.show=function(){var t=this;if(!this._isTransitioning&&!this._element.classList.contains(CLASS_NAME_SHOW)){var n,i;this._parent&&0===(n=SelectorEngine.find(SELECTOR_ACTIVES,this._parent).filter((function(e){return"string"==typeof t._config.parent?e.getAttribute("data-parent")===t._config.parent:e.classList.contains(CLASS_NAME_COLLAPSE)}))).length&&(n=null);var r=SelectorEngine.findOne(this._selector);if(n){var o=n.filter((function(e){return r!==e}));if((i=o[0]?Data.getData(o[0],DATA_KEY$3):null)&&i._isTransitioning)return}if(!EventHandler.trigger(this._element,EVENT_SHOW).defaultPrevented){n&&n.forEach((function(t){r!==t&&e.collapseInterface(t,"hide"),i||Data.setData(t,DATA_KEY$3,null)}));var a=this._getDimension();this._element.classList.remove(CLASS_NAME_COLLAPSE),this._element.classList.add(CLASS_NAME_COLLAPSING),this._element.style[a]=0,this._triggerArray.length&&this._triggerArray.forEach((function(e){e.classList.remove(CLASS_NAME_COLLAPSED),e.setAttribute("aria-expanded",!0)})),this.setTransitioning(!0);var s="scroll"+(a[0].toUpperCase()+a.slice(1)),E=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,(function(){t._element.classList.remove(CLASS_NAME_COLLAPSING),t._element.classList.add(CLASS_NAME_COLLAPSE),t._element.classList.add(CLASS_NAME_SHOW),t._element.style[a]="",t.setTransitioning(!1),EventHandler.trigger(t._element,EVENT_SHOWN)})),emulateTransitionEnd(this._element,E),this._element.style[a]=this._element[s]+"px"}}},t.hide=function(){var e=this;if(!this._isTransitioning&&this._element.classList.contains(CLASS_NAME_SHOW)&&!EventHandler.trigger(this._element,EVENT_HIDE).defaultPrevented){var t=this._getDimension();this._element.style[t]=this._element.getBoundingClientRect()[t]+"px",reflow(this._element),this._element.classList.add(CLASS_NAME_COLLAPSING),this._element.classList.remove(CLASS_NAME_COLLAPSE),this._element.classList.remove(CLASS_NAME_SHOW);var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var r=this._triggerArray[i],o=getElementFromSelector(r);o&&!o.classList.contains(CLASS_NAME_SHOW)&&(r.classList.add(CLASS_NAME_COLLAPSED),r.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[t]="";var a=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,(function(){e.setTransitioning(!1),e._element.classList.remove(CLASS_NAME_COLLAPSING),e._element.classList.add(CLASS_NAME_COLLAPSE),EventHandler.trigger(e._element,EVENT_HIDDEN)})),emulateTransitionEnd(this._element,a)}},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(WIDTH)?WIDTH: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=SELECTOR_DATA_TOGGLE$1+'[data-parent="'+t+'"]';return SelectorEngine.find(n,t).forEach((function(t){var n=getElementFromSelector(t);e._addAriaAndCollapsedClass(n,[t])})),t},t._addAriaAndCollapsedClass=function(e,t){if(e){var n=e.classList.contains(CLASS_NAME_SHOW);t.length&&t.forEach((function(e){n?e.classList.remove(CLASS_NAME_COLLAPSED):e.classList.add(CLASS_NAME_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}();EventHandler.on(document,EVENT_CLICK_DATA_API$3,SELECTOR_DATA_TOGGLE$1,(function(e){"A"===e.target.tagName&&e.preventDefault();var t=Manipulator.getDataAttributes(this),n=getSelectorFromElement(this);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)}))}));var $$4=getjQuery();if($$4){var JQUERY_NO_CONFLICT$3=$$4.fn[NAME$3];$$4.fn[NAME$3]=Collapse.jQueryInterface,$$4.fn[NAME$3].Constructor=Collapse,$$4.fn[NAME$3].noConflict=function(){return $$4.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_HIDE$1="hide"+EVENT_KEY$4,EVENT_HIDDEN$1="hidden"+EVENT_KEY$4,EVENT_SHOW$1="show"+EVENT_KEY$4,EVENT_SHOWN$1="shown"+EVENT_KEY$4,EVENT_CLICK="click"+EVENT_KEY$4,EVENT_CLICK_DATA_API$4="click"+EVENT_KEY$4+DATA_API_KEY$4,EVENT_KEYDOWN_DATA_API="keydown"+EVENT_KEY$4+DATA_API_KEY$4,EVENT_KEYUP_DATA_API="keyup"+EVENT_KEY$4+DATA_API_KEY$4,CLASS_NAME_DISABLED$1="disabled",CLASS_NAME_SHOW$1="show",CLASS_NAME_DROPUP="dropup",CLASS_NAME_DROPRIGHT="dropright",CLASS_NAME_DROPLEFT="dropleft",CLASS_NAME_MENURIGHT="dropdown-menu-right",CLASS_NAME_NAVBAR="navbar",CLASS_NAME_POSITION_STATIC="position-static",SELECTOR_DATA_TOGGLE$2='[data-toggle="dropdown"]',SELECTOR_FORM_CHILD=".dropdown form",SELECTOR_MENU=".dropdown-menu",SELECTOR_NAVBAR_NAV=".navbar-nav",SELECTOR_VISIBLE_ITEMS=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",PLACEMENT_TOP="top-start",PLACEMENT_TOPEND="top-end",PLACEMENT_BOTTOM="bottom-start",PLACEMENT_BOTTOMEND="bottom-end",PLACEMENT_RIGHT="right-start",PLACEMENT_LEFT="left-start",Default$2={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},DefaultType$2={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},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(CLASS_NAME_DISABLED$1)){var t=this._element.classList.contains(CLASS_NAME_SHOW$1);e.clearMenus(),t||this.show()}},t.show=function(){if(!(this._element.disabled||this._element.classList.contains(CLASS_NAME_DISABLED$1)||this._menu.classList.contains(CLASS_NAME_SHOW$1))){var t=e.getParentFromElement(this._element),n={relatedTarget:this._element};if(!EventHandler.trigger(this._element,EVENT_SHOW$1,n).defaultPrevented){if(!this._inNavbar){if(void 0===Popper)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var i=this._element;"parent"===this._config.reference?i=t:isElement(this._config.reference)&&(i=this._config.reference,void 0!==this._config.reference.jquery&&(i=this._config.reference[0])),"scrollParent"!==this._config.boundary&&t.classList.add(CLASS_NAME_POSITION_STATIC),this._popper=new Popper(i,this._menu,this._getPopperConfig())}var r;if("ontouchstart"in document.documentElement&&!SelectorEngine.closest(t,SELECTOR_NAVBAR_NAV))(r=[]).concat.apply(r,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,CLASS_NAME_SHOW$1),Manipulator.toggleClass(this._element,CLASS_NAME_SHOW$1),EventHandler.trigger(t,EVENT_SHOWN$1,n)}}},t.hide=function(){if(!this._element.disabled&&!this._element.classList.contains(CLASS_NAME_DISABLED$1)&&this._menu.classList.contains(CLASS_NAME_SHOW$1)){var t=e.getParentFromElement(this._element),n={relatedTarget:this._element};EventHandler.trigger(t,EVENT_HIDE$1,n).defaultPrevented||(this._popper&&this._popper.destroy(),Manipulator.toggleClass(this._menu,CLASS_NAME_SHOW$1),Manipulator.toggleClass(this._element,CLASS_NAME_SHOW$1),EventHandler.trigger(t,EVENT_HIDDEN$1,n))}},t.dispose=function(){Data.removeData(this._element,DATA_KEY$4),EventHandler.off(this._element,EVENT_KEY$4),this._element=null,this._menu=null,this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;EventHandler.on(this._element,EVENT_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(){return SelectorEngine.next(this._element,SELECTOR_MENU)[0]},t._getPlacement=function(){var e=this._element.parentNode,t=PLACEMENT_BOTTOM;return e.classList.contains(CLASS_NAME_DROPUP)?(t=PLACEMENT_TOP,this._menu.classList.contains(CLASS_NAME_MENURIGHT)&&(t=PLACEMENT_TOPEND)):e.classList.contains(CLASS_NAME_DROPRIGHT)?t=PLACEMENT_RIGHT:e.classList.contains(CLASS_NAME_DROPLEFT)?t=PLACEMENT_LEFT:this._menu.classList.contains(CLASS_NAME_MENURIGHT)&&(t=PLACEMENT_BOTTOMEND),t},t._detectNavbar=function(){return Boolean(SelectorEngine.closest(this._element,"."+CLASS_NAME_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}),_objectSpread2({},e,{},this._config.popperConfig)},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=SelectorEngine.find(SELECTOR_DATA_TOGGLE$2),i=0,r=n.length;i<r;i++){var o=e.getParentFromElement(n[i]),a=Data.getData(n[i],DATA_KEY$4),s={relatedTarget:n[i]};if(t&&"click"===t.type&&(s.clickEvent=t),a){var E=a._menu;if(n[i].classList.contains(CLASS_NAME_SHOW$1))if(!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&t.which===TAB_KEYCODE)&&E.contains(t.target)))if(!EventHandler.trigger(o,EVENT_HIDE$1,s).defaultPrevented){var l;if("ontouchstart"in document.documentElement)(l=[]).concat.apply(l,document.body.children).forEach((function(e){return EventHandler.off(e,"mouseover",null,noop())}));n[i].setAttribute("aria-expanded","false"),a._popper&&a._popper.destroy(),E.classList.remove(CLASS_NAME_SHOW$1),n[i].classList.remove(CLASS_NAME_SHOW$1),EventHandler.trigger(o,EVENT_HIDDEN$1,s)}}}},e.getParentFromElement=function(e){return getElementFromSelector(e)||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_MENU)):!REGEXP_KEYDOWN.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!this.classList.contains(CLASS_NAME_DISABLED$1))){var n=e.getParentFromElement(this),i=this.classList.contains(CLASS_NAME_SHOW$1);if(t.which===ESCAPE_KEYCODE)return(this.matches(SELECTOR_DATA_TOGGLE$2)?this:SelectorEngine.prev(this,SELECTOR_DATA_TOGGLE$2)[0]).focus(),void e.clearMenus();if(i&&t.which!==SPACE_KEYCODE){var r=SelectorEngine.find(SELECTOR_VISIBLE_ITEMS,n).filter(isVisible);if(r.length){var o=r.indexOf(t.target)||0;t.which===ARROW_UP_KEYCODE&&o>0&&o--,t.which===ARROW_DOWN_KEYCODE&&o<r.length-1&&o++,r[o].focus()}}else e.clearMenus()}},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}();EventHandler.on(document,EVENT_KEYDOWN_DATA_API,SELECTOR_DATA_TOGGLE$2,Dropdown.dataApiKeydownHandler),EventHandler.on(document,EVENT_KEYDOWN_DATA_API,SELECTOR_MENU,Dropdown.dataApiKeydownHandler),EventHandler.on(document,EVENT_CLICK_DATA_API$4,Dropdown.clearMenus),EventHandler.on(document,EVENT_KEYUP_DATA_API,Dropdown.clearMenus),EventHandler.on(document,EVENT_CLICK_DATA_API$4,SELECTOR_DATA_TOGGLE$2,(function(e){e.preventDefault(),e.stopPropagation(),Dropdown.dropdownInterface(this,"toggle")})),EventHandler.on(document,EVENT_CLICK_DATA_API$4,SELECTOR_FORM_CHILD,(function(e){return e.stopPropagation()}));var $$5=getjQuery();if($$5){var JQUERY_NO_CONFLICT$4=$$5.fn[NAME$4];$$5.fn[NAME$4]=Dropdown.jQueryInterface,$$5.fn[NAME$4].Constructor=Dropdown,$$5.fn[NAME$4].noConflict=function(){return $$5.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_HIDE$2="hide"+EVENT_KEY$5,EVENT_HIDE_PREVENTED="hidePrevented"+EVENT_KEY$5,EVENT_HIDDEN$2="hidden"+EVENT_KEY$5,EVENT_SHOW$2="show"+EVENT_KEY$5,EVENT_SHOWN$2="shown"+EVENT_KEY$5,EVENT_FOCUSIN="focusin"+EVENT_KEY$5,EVENT_RESIZE="resize"+EVENT_KEY$5,EVENT_CLICK_DISMISS="click.dismiss"+EVENT_KEY$5,EVENT_KEYDOWN_DISMISS="keydown.dismiss"+EVENT_KEY$5,EVENT_MOUSEUP_DISMISS="mouseup.dismiss"+EVENT_KEY$5,EVENT_MOUSEDOWN_DISMISS="mousedown.dismiss"+EVENT_KEY$5,EVENT_CLICK_DATA_API$5="click"+EVENT_KEY$5+DATA_API_KEY$5,CLASS_NAME_SCROLLABLE="modal-dialog-scrollable",CLASS_NAME_SCROLLBAR_MEASURER="modal-scrollbar-measure",CLASS_NAME_BACKDROP="modal-backdrop",CLASS_NAME_OPEN="modal-open",CLASS_NAME_FADE="fade",CLASS_NAME_SHOW$2="show",CLASS_NAME_STATIC="modal-static",SELECTOR_DIALOG=".modal-dialog",SELECTOR_MODAL_BODY=".modal-body",SELECTOR_DATA_TOGGLE$3='[data-toggle="modal"]',SELECTOR_DATA_DISMISS='[data-dismiss="modal"]',SELECTOR_FIXED_CONTENT=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",SELECTOR_STICKY_CONTENT=".sticky-top",Modal=function(){function e(e,t){this._config=this._getConfig(t),this._element=e,this._dialog=SelectorEngine.findOne(SELECTOR_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(CLASS_NAME_FADE)&&(this._isTransitioning=!0);var n=EventHandler.trigger(this._element,EVENT_SHOW$2,{relatedTarget:e});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.on(this._element,EVENT_CLICK_DISMISS,SELECTOR_DATA_DISMISS,(function(e){return t.hide(e)})),EventHandler.on(this._dialog,EVENT_MOUSEDOWN_DISMISS,(function(){EventHandler.one(t._element,EVENT_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_HIDE$2).defaultPrevented){this._isShown=!1;var n=this._element.classList.contains(CLASS_NAME_FADE);if(n&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.off(document,EVENT_FOCUSIN),this._element.classList.remove(CLASS_NAME_SHOW$2),EventHandler.off(this._element,EVENT_CLICK_DISMISS),EventHandler.off(this._dialog,EVENT_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_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(CLASS_NAME_FADE),i=SelectorEngine.findOne(SELECTOR_MODAL_BODY,this._dialog);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(CLASS_NAME_SCROLLABLE)&&i?i.scrollTop=0:this._element.scrollTop=0,n&&reflow(this._element),this._element.classList.add(CLASS_NAME_SHOW$2),this._config.focus&&this._enforceFocus();var r=function(){t._config.focus&&t._element.focus(),t._isTransitioning=!1,EventHandler.trigger(t._element,EVENT_SHOWN$2,{relatedTarget:e})};if(n){var o=getTransitionDurationFromElement(this._dialog);EventHandler.one(this._dialog,TRANSITION_END,r),emulateTransitionEnd(this._dialog,o)}else r()},t._enforceFocus=function(){var e=this;EventHandler.off(document,EVENT_FOCUSIN),EventHandler.on(document,EVENT_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?EventHandler.on(this._element,EVENT_KEYDOWN_DISMISS,(function(t){e._config.keyboard&&t.which===ESCAPE_KEYCODE$1?(t.preventDefault(),e.hide()):e._config.keyboard||t.which!==ESCAPE_KEYCODE$1||e._triggerBackdropTransition()})):EventHandler.off(this._element,EVENT_KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?EventHandler.on(window,EVENT_RESIZE,(function(){return e._adjustDialog()})):EventHandler.off(window,EVENT_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(CLASS_NAME_OPEN),e._resetAdjustments(),e._resetScrollbar(),EventHandler.trigger(e._element,EVENT_HIDDEN$2)}))},t._removeBackdrop=function(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null},t._showBackdrop=function(e){var t=this,n=this._element.classList.contains(CLASS_NAME_FADE)?CLASS_NAME_FADE:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=CLASS_NAME_BACKDROP,n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),EventHandler.on(this._element,EVENT_CLICK_DISMISS,(function(e){t._ignoreBackdropClick?t._ignoreBackdropClick=!1:e.target===e.currentTarget&&t._triggerBackdropTransition()})),n&&reflow(this._backdrop),this._backdrop.classList.add(CLASS_NAME_SHOW$2),!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(CLASS_NAME_SHOW$2);var r=function(){t._removeBackdrop(),e()};if(this._element.classList.contains(CLASS_NAME_FADE)){var o=getTransitionDurationFromElement(this._backdrop);EventHandler.one(this._backdrop,TRANSITION_END,r),emulateTransitionEnd(this._backdrop,o)}else r()}else e()},t._triggerBackdropTransition=function(){var e=this;if("static"===this._config.backdrop){if(EventHandler.trigger(this._element,EVENT_HIDE_PREVENTED).defaultPrevented)return;this._element.classList.add(CLASS_NAME_STATIC);var t=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,(function(){e._element.classList.remove(CLASS_NAME_STATIC)})),emulateTransitionEnd(this._element,t),this._element.focus()}else this.hide()},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){SelectorEngine.find(SELECTOR_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"})),SelectorEngine.find(SELECTOR_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(CLASS_NAME_OPEN)},t._resetScrollbar=function(){SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach((function(e){var t=Manipulator.getDataAttribute(e,"padding-right");void 0!==t&&(Manipulator.removeDataAttribute(e,"padding-right"),e.style.paddingRight=t)})),SelectorEngine.find(""+SELECTOR_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=CLASS_NAME_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}();EventHandler.on(document,EVENT_CLICK_DATA_API$5,SELECTOR_DATA_TOGGLE$3,(function(e){var t=this,n=getElementFromSelector(this);"A"!==this.tagName&&"AREA"!==this.tagName||e.preventDefault(),EventHandler.one(n,EVENT_SHOW$2,(function(e){e.defaultPrevented||EventHandler.one(n,EVENT_HIDDEN$2,(function(){isVisible(t)&&t.focus()}))}));var i=Data.getData(n,DATA_KEY$5);if(!i){var r=_objectSpread2({},Manipulator.getDataAttributes(n),{},Manipulator.getDataAttributes(this));i=new Modal(n,r)}i.show(this)}));var $$6=getjQuery();if($$6){var JQUERY_NO_CONFLICT$5=$$6.fn[NAME$5];$$6.fn[NAME$5]=Modal.jQueryInterface,$$6.fn[NAME$5].Constructor=Modal,$$6.fn[NAME$5].noConflict=function(){return $$6.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,[\d+/a-z]+=*$/i,allowedAttribute=function(e,t){var n=e.nodeName.toLowerCase();if(-1!==t.indexOf(n))return-1===uriAttrs.indexOf(n)||(SAFE_URL_PATTERN.test(e.nodeValue)||DATA_URL_PATTERN.test(e.nodeValue));for(var i=t.filter((function(e){return e instanceof RegExp})),r=0,o=i.length;r<o;r++)if(i[r].test(n))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","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function sanitizeHtml(e,t,n){var i;if(!e.length)return e;if(n&&"function"==typeof n)return n(e);for(var r=(new window.DOMParser).parseFromString(e,"text/html"),o=Object.keys(t),a=(i=[]).concat.apply(i,r.body.querySelectorAll("*")),s=function(e,n){var i,r=a[e],s=r.nodeName.toLowerCase();if(-1===o.indexOf(s))return r.parentNode.removeChild(r),"continue";var E=(i=[]).concat.apply(i,r.attributes),l=[].concat(t["*"]||[],t[s]||[]);E.forEach((function(e){allowedAttribute(e,l)||r.removeAttribute(e.nodeName)}))},E=0,l=a.length;E<l;E++)s(E);return r.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",popperConfig:"(null|object)"},AttachmentMap={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,popperConfig:null},Event$1={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},CLASS_NAME_FADE$1="fade",CLASS_NAME_MODAL="modal",CLASS_NAME_SHOW$3="show",HOVER_STATE_SHOW="show",HOVER_STATE_OUT="out",SELECTOR_TOOLTIP_INNER=".tooltip-inner",TRIGGER_HOVER="hover",TRIGGER_FOCUS="focus",TRIGGER_CLICK="click",TRIGGER_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(CLASS_NAME_SHOW$3))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,"."+CLASS_NAME_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,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(),o=getUID(this.constructor.NAME);r.setAttribute("id",o),this.element.setAttribute("aria-describedby",o),this.setContent(),this.config.animation&&r.classList.add(CLASS_NAME_FADE$1);var a="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,s=this._getAttachment(a);this._addAttachmentClass(s);var E,l=this._getContainer();if(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,this._getPopperConfig(s)),r.classList.add(CLASS_NAME_SHOW$3),"ontouchstart"in document.documentElement)(E=[]).concat.apply(E,document.body.children).forEach((function(e){EventHandler.on(e,"mouseover",noop())}));var _=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,EventHandler.trigger(e.element,e.constructor.Event.SHOWN),t===HOVER_STATE_OUT&&e._leave(null,e)};if(this.tip.classList.contains(CLASS_NAME_FADE$1)){var c=getTransitionDurationFromElement(this.tip);EventHandler.one(this.tip,TRANSITION_END,_),emulateTransitionEnd(this.tip,c)}else _()}},t.hide=function(){var e=this,t=this.getTipElement(),n=function(){e._hoverState!==HOVER_STATE_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){var i;if(t.classList.remove(CLASS_NAME_SHOW$3),"ontouchstart"in document.documentElement)(i=[]).concat.apply(i,document.body.children).forEach((function(e){return EventHandler.off(e,"mouseover",noop)}));if(this._activeTrigger[TRIGGER_CLICK]=!1,this._activeTrigger[TRIGGER_FOCUS]=!1,this._activeTrigger[TRIGGER_HOVER]=!1,this.tip.classList.contains(CLASS_NAME_FADE$1)){var r=getTransitionDurationFromElement(t);EventHandler.one(t,TRANSITION_END,n),emulateTransitionEnd(t,r)}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_TOOLTIP_INNER,e),this.getTitle()),e.classList.remove(CLASS_NAME_FADE$1),e.classList.remove(CLASS_NAME_SHOW$3)},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._getPopperConfig=function(e){var t=this;return _objectSpread2({},{placement:e,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)}},{},this.config.popperConfig)},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[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,"."+CLASS_NAME_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(CLASS_NAME_SHOW$3)||t._hoverState===HOVER_STATE_SHOW?t._hoverState=HOVER_STATE_SHOW:(clearTimeout(t._timeout),t._hoverState=HOVER_STATE_SHOW,t.config.delay&&t.config.delay.show?t._timeout=setTimeout((function(){t._hoverState===HOVER_STATE_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=HOVER_STATE_OUT,t.config.delay&&t.config.delay.hide?t._timeout=setTimeout((function(){t._hoverState===HOVER_STATE_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>0&&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(CLASS_NAME_FADE$1),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$1}},{key:"EVENT_KEY",get:function(){return EVENT_KEY$6}},{key:"DefaultType",get:function(){return DefaultType$4}}]),e}(),$$7=getjQuery();if($$7){var JQUERY_NO_CONFLICT$6=$$7.fn[NAME$6];$$7.fn[NAME$6]=Tooltip.jQueryInterface,$$7.fn[NAME$6].Constructor=Tooltip,$$7.fn[NAME$6].noConflict=function(){return $$7.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)"}),Event$2={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},CLASS_NAME_FADE$2="fade",CLASS_NAME_SHOW$4="show",SELECTOR_TITLE=".popover-header",SELECTOR_CONTENT=".popover-body",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.setContent=function(){var e=this.getTipElement();this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE,e),this.getTitle());var t=this._getContent();"function"==typeof t&&(t=t.call(this.element)),this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT,e),t),e.classList.remove(CLASS_NAME_FADE$2),e.classList.remove(CLASS_NAME_SHOW$4)},n._addAttachmentClass=function(e){this.getTipElement().classList.add(CLASS_PREFIX$1+"-"+e)},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$2}},{key:"EVENT_KEY",get:function(){return EVENT_KEY$7}},{key:"DefaultType",get:function(){return DefaultType$5}}]),t}(Tooltip),$$8=getjQuery();if($$8){var JQUERY_NO_CONFLICT$7=$$8.fn[NAME$7];$$8.fn[NAME$7]=Popover.jQueryInterface,$$8.fn[NAME$7].Constructor=Popover,$$8.fn[NAME$7].noConflict=function(){return $$8.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_ACTIVATE="activate"+EVENT_KEY$8,EVENT_SCROLL="scroll"+EVENT_KEY$8,EVENT_LOAD_DATA_API$1="load"+EVENT_KEY$8+DATA_API_KEY$6,CLASS_NAME_DROPDOWN_ITEM="dropdown-item",CLASS_NAME_ACTIVE$2="active",SELECTOR_DATA_SPY='[data-spy="scroll"]',SELECTOR_NAV_LIST_GROUP=".nav, .list-group",SELECTOR_NAV_LINKS=".nav-link",SELECTOR_NAV_ITEMS=".nav-item",SELECTOR_LIST_ITEMS=".list-group-item",SELECTOR_DROPDOWN=".dropdown",SELECTOR_DROPDOWN_TOGGLE=".dropdown-toggle",METHOD_OFFSET="offset",METHOD_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_NAV_LINKS+","+this._config.target+" "+SELECTOR_LIST_ITEMS+","+this._config.target+" ."+CLASS_NAME_DROPDOWN_ITEM,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,EventHandler.on(this._scrollElement,EVENT_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?METHOD_OFFSET:METHOD_POSITION,n="auto"===this._config.method?t:this._config.method,i=n===METHOD_POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),SelectorEngine.find(this._selector).map((function(e){var t,r=getSelectorFromElement(e);if(r&&(t=SelectorEngine.findOne(r)),t){var o=t.getBoundingClientRect();if(o.width||o.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(CLASS_NAME_DROPDOWN_ITEM)?(SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE,SelectorEngine.closest(n,SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$2),n.classList.add(CLASS_NAME_ACTIVE$2)):(n.classList.add(CLASS_NAME_ACTIVE$2),SelectorEngine.parents(n,SELECTOR_NAV_LIST_GROUP).forEach((function(e){SelectorEngine.prev(e,SELECTOR_NAV_LINKS+", "+SELECTOR_LIST_ITEMS).forEach((function(e){return e.classList.add(CLASS_NAME_ACTIVE$2)})),SelectorEngine.prev(e,SELECTOR_NAV_ITEMS).forEach((function(e){SelectorEngine.children(e,SELECTOR_NAV_LINKS).forEach((function(e){return e.classList.add(CLASS_NAME_ACTIVE$2)}))}))}))),EventHandler.trigger(this._scrollElement,EVENT_ACTIVATE,{relatedTarget:e})},t._clear=function(){SelectorEngine.find(this._selector).filter((function(e){return e.classList.contains(CLASS_NAME_ACTIVE$2)})).forEach((function(e){return e.classList.remove(CLASS_NAME_ACTIVE$2)}))},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}();EventHandler.on(window,EVENT_LOAD_DATA_API$1,(function(){SelectorEngine.find(SELECTOR_DATA_SPY).forEach((function(e){return new ScrollSpy(e,Manipulator.getDataAttributes(e))}))}));var $$9=getjQuery();if($$9){var JQUERY_NO_CONFLICT$8=$$9.fn[NAME$8];$$9.fn[NAME$8]=ScrollSpy.jQueryInterface,$$9.fn[NAME$8].Constructor=ScrollSpy,$$9.fn[NAME$8].noConflict=function(){return $$9.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_HIDE$3="hide"+EVENT_KEY$9,EVENT_HIDDEN$3="hidden"+EVENT_KEY$9,EVENT_SHOW$3="show"+EVENT_KEY$9,EVENT_SHOWN$3="shown"+EVENT_KEY$9,EVENT_CLICK_DATA_API$6="click"+EVENT_KEY$9+DATA_API_KEY$7,CLASS_NAME_DROPDOWN_MENU="dropdown-menu",CLASS_NAME_ACTIVE$3="active",CLASS_NAME_DISABLED$2="disabled",CLASS_NAME_FADE$3="fade",CLASS_NAME_SHOW$5="show",SELECTOR_DROPDOWN$1=".dropdown",SELECTOR_NAV_LIST_GROUP$1=".nav, .list-group",SELECTOR_ACTIVE$2=".active",SELECTOR_ACTIVE_UL=":scope > li > .active",SELECTOR_DATA_TOGGLE$4='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',SELECTOR_DROPDOWN_TOGGLE$1=".dropdown-toggle",SELECTOR_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(CLASS_NAME_ACTIVE$3)||this._element.classList.contains(CLASS_NAME_DISABLED$2))){var t,n=getElementFromSelector(this._element),i=SelectorEngine.closest(this._element,SELECTOR_NAV_LIST_GROUP$1);if(i){var r="UL"===i.nodeName||"OL"===i.nodeName?SELECTOR_ACTIVE_UL:SELECTOR_ACTIVE$2;t=(t=SelectorEngine.find(r,i))[t.length-1]}var o=null;if(t&&(o=EventHandler.trigger(t,EVENT_HIDE$3,{relatedTarget:this._element})),!(EventHandler.trigger(this._element,EVENT_SHOW$3,{relatedTarget:t}).defaultPrevented||null!==o&&o.defaultPrevented)){this._activate(this._element,i);var a=function(){EventHandler.trigger(t,EVENT_HIDDEN$3,{relatedTarget:e._element}),EventHandler.trigger(e._element,EVENT_SHOWN$3,{relatedTarget:t})};n?this._activate(n,n.parentNode,a):a()}}},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_ACTIVE$2):SelectorEngine.find(SELECTOR_ACTIVE_UL,t))[0],o=n&&r&&r.classList.contains(CLASS_NAME_FADE$3),a=function(){return i._transitionComplete(e,r,n)};if(r&&o){var s=getTransitionDurationFromElement(r);r.classList.remove(CLASS_NAME_SHOW$5),EventHandler.one(r,TRANSITION_END,a),emulateTransitionEnd(r,s)}else a()},t._transitionComplete=function(e,t,n){if(t){t.classList.remove(CLASS_NAME_ACTIVE$3);var i=SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD,t.parentNode);i&&i.classList.remove(CLASS_NAME_ACTIVE$3),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}(e.classList.add(CLASS_NAME_ACTIVE$3),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),reflow(e),e.classList.contains(CLASS_NAME_FADE$3)&&e.classList.add(CLASS_NAME_SHOW$5),e.parentNode&&e.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU))&&(SelectorEngine.closest(e,SELECTOR_DROPDOWN$1)&&SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE$1).forEach((function(e){return e.classList.add(CLASS_NAME_ACTIVE$3)})),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}();EventHandler.on(document,EVENT_CLICK_DATA_API$6,SELECTOR_DATA_TOGGLE$4,(function(e){e.preventDefault(),(Data.getData(this,DATA_KEY$9)||new Tab(this)).show()}));var $$a=getjQuery();if($$a){var JQUERY_NO_CONFLICT$9=$$a.fn[NAME$9];$$a.fn[NAME$9]=Tab.jQueryInterface,$$a.fn[NAME$9].Constructor=Tab,$$a.fn[NAME$9].noConflict=function(){return $$a.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_CLICK_DISMISS$1="click.dismiss"+EVENT_KEY$a,EVENT_HIDE$4="hide"+EVENT_KEY$a,EVENT_HIDDEN$4="hidden"+EVENT_KEY$a,EVENT_SHOW$4="show"+EVENT_KEY$a,EVENT_SHOWN$4="shown"+EVENT_KEY$a,CLASS_NAME_FADE$4="fade",CLASS_NAME_HIDE="hide",CLASS_NAME_SHOW$6="show",CLASS_NAME_SHOWING="showing",DefaultType$7={animation:"boolean",autohide:"boolean",delay:"number"},Default$7={animation:!0,autohide:!0,delay:500},SELECTOR_DATA_DISMISS$1='[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_SHOW$4).defaultPrevented){this._config.animation&&this._element.classList.add(CLASS_NAME_FADE$4);var t=function(){e._element.classList.remove(CLASS_NAME_SHOWING),e._element.classList.add(CLASS_NAME_SHOW$6),EventHandler.trigger(e._element,EVENT_SHOWN$4),e._config.autohide&&(e._timeout=setTimeout((function(){e.hide()}),e._config.delay))};if(this._element.classList.remove(CLASS_NAME_HIDE),reflow(this._element),this._element.classList.add(CLASS_NAME_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(CLASS_NAME_SHOW$6)&&!EventHandler.trigger(this._element,EVENT_HIDE$4).defaultPrevented){var t=function(){e._element.classList.add(CLASS_NAME_HIDE),EventHandler.trigger(e._element,EVENT_HIDDEN$4)};if(this._element.classList.remove(CLASS_NAME_SHOW$6),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(CLASS_NAME_SHOW$6)&&this._element.classList.remove(CLASS_NAME_SHOW$6),EventHandler.off(this._element,EVENT_CLICK_DISMISS$1),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_CLICK_DISMISS$1,SELECTOR_DATA_DISMISS$1,(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}(),$$b=getjQuery();if($$b){var JQUERY_NO_CONFLICT$a=$$b.fn[NAME$a];$$b.fn[NAME$a]=Toast.jQueryInterface,$$b.fn[NAME$a].Constructor=Toast,$$b.fn[NAME$a].noConflict=function(){return $$b.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(Object(n),!0).forEach((function(t){_defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(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",toType=function(e){return null==e?""+e:{}.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},getSelector=function(e){var t=e.getAttribute("data-target");if(!t||"#"===t){var n=e.getAttribute("href");t=n&&"#"!==n?n.trim():null}return t},getSelectorFromElement=function(e){var t=getSelector(e);return t&&document.querySelector(t)?t:null},getElementFromSelector=function(e){var t=getSelector(e);return t?document.querySelector(t):null},getTransitionDurationFromElement=function(e){if(!e)return 0;var t=window.getComputedStyle(e),n=t.transitionDuration,i=t.transitionDelay,r=parseFloat(n),o=parseFloat(i);return r||o?(n=n.split(",")[0],i=i.split(",")[0],(parseFloat(n)+parseFloat(i))*MILLISECONDS_MULTIPLIER):0},triggerTransitionEnd=function(e){e.dispatchEvent(new Event(TRANSITION_END))},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],o=t[i],a=o&&isElement(o)?"element":toType(o);if(!new RegExp(r).test(a))throw new Error(e.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+r+'".')}))},isVisible=function(e){if(!e)return!1;if(e.style&&e.parentNode&&e.parentNode.style){var t=getComputedStyle(e),n=getComputedStyle(e.parentNode);return"none"!==t.display&&"none"!==n.display&&"hidden"!==t.visibility}return!1},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},getjQuery=function(){var e=window.jQuery;return e&&!document.body.hasAttribute("data-no-jquery")?e:null},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)}},find=Element.prototype.querySelectorAll,findOne=Element.prototype.querySelector,defaultPreventedPreservedOnDispatch=function(){var e=new CustomEvent("Bootstrap",{cancelable:!0}),t=document.createElement("div");return t.addEventListener("Bootstrap",(function(){return null})),e.preventDefault(),t.dispatchEvent(e),e.defaultPrevented}(),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 $=getjQuery(),namespaceRegex=/[^.]*(?=\..*)\.|.*/,stripNameRegex=/\..*/,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 bootstrapHandler(e,t){return function n(i){return n.oneOff&&EventHandler.off(e,i.type,t),t.apply(e,[i])}}function bootstrapDelegationHandler(e,t,n){return function i(r){for(var o=e.querySelectorAll(t),a=r.target;a&&a!==this;a=a.parentNode)for(var s=o.length;s--;)if(o[s]===a)return i.oneOff&&EventHandler.off(e,r.type,n),n.apply(a,[r]);return null}}function findHandler(e,t,n){void 0===n&&(n=null);for(var i=Object.keys(e),r=0,o=i.length;r<o;r++){var a=e[i[r]];if(a.originalHandler===t&&a.delegationSelector===n)return a}return null}function normalizeParams(e,t,n){var i="string"==typeof t,r=i?n:t,o=e.replace(stripNameRegex,""),a=customEvents[o];return a&&(o=a),nativeEvents.indexOf(o)>-1||(o=e),[i,r,o]}function addHandler(e,t,n,i,r){if("string"==typeof t&&e){n||(n=i,i=null);var o=normalizeParams(t,n,i),a=o[0],s=o[1],E=o[2],l=getEvent(e),_=l[E]||(l[E]={}),c=findHandler(_,s,a?n:null);if(c)c.oneOff=c.oneOff&&r;else{var u=getUidEvent(s,t.replace(namespaceRegex,"")),f=a?bootstrapDelegationHandler(e,n,i):bootstrapHandler(e,n);f.delegationSelector=a?n:null,f.originalHandler=s,f.oneOff=r,f.uidEvent=u,_[u]=f,e.addEventListener(E,f,a)}}}function removeHandler(e,t,n,i,r){var o=findHandler(t[n],i,r);o&&(e.removeEventListener(n,o,Boolean(r)),delete t[n][o.uidEvent])}function removeNamespacedHandlers(e,t,n,i){var r=t[n]||{};Object.keys(r).forEach((function(o){if(o.indexOf(i)>-1){var a=r[o];removeHandler(e,t,n,a.originalHandler,a.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),o=r[0],a=r[1],s=r[2],E=s!==t,l=getEvent(e),_="."===t.charAt(0);if(void 0===a){_&&Object.keys(l).forEach((function(n){removeNamespacedHandlers(e,l,n,t.slice(1))}));var c=l[s]||{};Object.keys(c).forEach((function(n){var i=n.replace(stripUidRegex,"");if(!E||t.indexOf(i)>-1){var r=c[n];removeHandler(e,l,s,r.originalHandler,r.delegationSelector)}}))}else{if(!l||!l[s])return;removeHandler(e,l,s,a,o?n:null)}}},trigger:function(e,t,n){if("string"!=typeof t||!e)return null;var i,r=t.replace(stripNameRegex,""),o=t!==r,a=nativeEvents.indexOf(r)>-1,s=!0,E=!0,l=!1,_=null;return o&&$&&(i=$.Event(t,n),$(e).trigger(i),s=!i.isPropagationStopped(),E=!i.isImmediatePropagationStopped(),l=i.isDefaultPrevented()),a?(_=document.createEvent("HTMLEvents")).initEvent(r,s,!0):_=new CustomEvent(t,{bubbles:s,cancelable:!0}),void 0!==n&&Object.keys(n).forEach((function(e){Object.defineProperty(_,e,{get:function(){return n[e]}})})),l&&(_.preventDefault(),defaultPreventedPreservedOnDispatch||Object.defineProperty(_,"defaultPrevented",{get:function(){return!0}})),E&&e.dispatchEvent(_),_.defaultPrevented&&void 0!==i&&i.preventDefault(),_}},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_CLOSE="close"+EVENT_KEY,EVENT_CLOSED="closed"+EVENT_KEY,EVENT_CLICK_DATA_API="click"+EVENT_KEY+DATA_API_KEY,CLASSNAME_ALERT="alert",CLASSNAME_FADE="fade",CLASSNAME_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){return getElementFromSelector(e)||e.closest("."+CLASSNAME_ALERT)},t._triggerCloseEvent=function(e){return EventHandler.trigger(e,EVENT_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_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}();EventHandler.on(document,EVENT_CLICK_DATA_API,SELECTOR_DISMISS,Alert.handleDismiss(new Alert));var $$1=getjQuery();if($$1){var JQUERY_NO_CONFLICT=$$1.fn[NAME];$$1.fn[NAME]=Alert.jQueryInterface,$$1.fn[NAME].Constructor=Alert,$$1.fn[NAME].noConflict=function(){return $$1.fn[NAME]=JQUERY_NO_CONFLICT,Alert.jQueryInterface}}var NODE_TEXT=3,SelectorEngine={matches:function(e,t){return e.matches(t)},find:function(e,t){var n;return void 0===t&&(t=document.documentElement),(n=[]).concat.apply(n,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,i=(n=[]).concat.apply(n,e.children);return i.filter((function(e){return e.matches(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},prev:function(e,t){for(var n=e.previousElementSibling;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next:function(e,t){for(var n=e.nextElementSibling;n;){if(this.matches(n,t))return[n];n=n.nextElementSibling}return[]}},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",CLASS_NAME_ACTIVE="active",CLASS_NAME_DISABLED="disabled",CLASS_NAME_FOCUS="focus",SELECTOR_DATA_TOGGLE_CARROT='[data-toggle^="button"]',SELECTOR_DATA_TOGGLE='[data-toggle="buttons"]',SELECTOR_INPUT='input:not([type="hidden"])',SELECTOR_ACTIVE=".active",SELECTOR_BUTTON=".btn",EVENT_CLICK_DATA_API$1="click"+EVENT_KEY$1+DATA_API_KEY$1,EVENT_FOCUS_DATA_API="focus"+EVENT_KEY$1+DATA_API_KEY$1,EVENT_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=this._element.closest(SELECTOR_DATA_TOGGLE);if(n){var i=SelectorEngine.findOne(SELECTOR_INPUT,this._element);if(i&&"radio"===i.type){if(i.checked&&this._element.classList.contains(CLASS_NAME_ACTIVE))e=!1;else{var r=SelectorEngine.findOne(SELECTOR_ACTIVE,n);r&&r.classList.remove(CLASS_NAME_ACTIVE)}if(e){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains(CLASS_NAME_DISABLED)||n.classList.contains(CLASS_NAME_DISABLED))return;i.checked=!this._element.classList.contains(CLASS_NAME_ACTIVE),EventHandler.trigger(i,"change")}i.focus(),t=!1}}t&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(CLASS_NAME_ACTIVE)),e&&this._element.classList.toggle(CLASS_NAME_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}();EventHandler.on(document,EVENT_CLICK_DATA_API$1,SELECTOR_DATA_TOGGLE_CARROT,(function(e){e.preventDefault();var t=e.target.closest(SELECTOR_BUTTON),n=Data.getData(t,DATA_KEY$1);n||(n=new Button(t)),n.toggle()})),EventHandler.on(document,EVENT_FOCUS_DATA_API,SELECTOR_DATA_TOGGLE_CARROT,(function(e){var t=e.target.closest(SELECTOR_BUTTON);t&&t.classList.add(CLASS_NAME_FOCUS)})),EventHandler.on(document,EVENT_BLUR_DATA_API,SELECTOR_DATA_TOGGLE_CARROT,(function(e){var t=e.target.closest(SELECTOR_BUTTON);t&&t.classList.remove(CLASS_NAME_FOCUS)}));var $$2=getjQuery();if($$2){var JQUERY_NO_CONFLICT$1=$$2.fn[NAME$1];$$2.fn[NAME$1]=Button.jQueryInterface,$$2.fn[NAME$1].Constructor=Button,$$2.fn[NAME$1].noConflict=function(){return $$2.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_KEY="ArrowLeft",ARROW_RIGHT_KEY="ArrowRight",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",DIRECTION_PREV="prev",DIRECTION_LEFT="left",DIRECTION_RIGHT="right",EVENT_SLIDE="slide"+EVENT_KEY$2,EVENT_SLID="slid"+EVENT_KEY$2,EVENT_KEYDOWN="keydown"+EVENT_KEY$2,EVENT_MOUSEENTER="mouseenter"+EVENT_KEY$2,EVENT_MOUSELEAVE="mouseleave"+EVENT_KEY$2,EVENT_TOUCHSTART="touchstart"+EVENT_KEY$2,EVENT_TOUCHMOVE="touchmove"+EVENT_KEY$2,EVENT_TOUCHEND="touchend"+EVENT_KEY$2,EVENT_POINTERDOWN="pointerdown"+EVENT_KEY$2,EVENT_POINTERUP="pointerup"+EVENT_KEY$2,EVENT_DRAG_START="dragstart"+EVENT_KEY$2,EVENT_LOAD_DATA_API="load"+EVENT_KEY$2+DATA_API_KEY$2,EVENT_CLICK_DATA_API$2="click"+EVENT_KEY$2+DATA_API_KEY$2,CLASS_NAME_CAROUSEL="carousel",CLASS_NAME_ACTIVE$1="active",CLASS_NAME_SLIDE="slide",CLASS_NAME_RIGHT="carousel-item-right",CLASS_NAME_LEFT="carousel-item-left",CLASS_NAME_NEXT="carousel-item-next",CLASS_NAME_PREV="carousel-item-prev",CLASS_NAME_POINTER_EVENT="pointer-event",SELECTOR_ACTIVE$1=".active",SELECTOR_ACTIVE_ITEM=".active.carousel-item",SELECTOR_ITEM=".carousel-item",SELECTOR_ITEM_IMG=".carousel-item img",SELECTOR_NEXT_PREV=".carousel-item-next, .carousel-item-prev",SELECTOR_INDICATORS=".carousel-indicators",SELECTOR_DATA_SLIDE="[data-slide], [data-slide-to]",SELECTOR_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_INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),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_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_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_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(_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_KEYDOWN,(function(t){return e._keydown(t)})),"hover"===this._config.pause&&(EventHandler.on(this._element,EVENT_MOUSEENTER,(function(t){return e.pause(t)})),EventHandler.on(this._element,EVENT_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))};SelectorEngine.find(SELECTOR_ITEM_IMG,this._element).forEach((function(e){EventHandler.on(e,EVENT_DRAG_START,(function(e){return e.preventDefault()}))})),this._pointerEvent?(EventHandler.on(this._element,EVENT_POINTERDOWN,(function(e){return t(e)})),EventHandler.on(this._element,EVENT_POINTERUP,(function(e){return n(e)})),this._element.classList.add(CLASS_NAME_POINTER_EVENT)):(EventHandler.on(this._element,EVENT_TOUCHSTART,(function(e){return t(e)})),EventHandler.on(this._element,EVENT_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_TOUCHEND,(function(e){return n(e)})))},t._keydown=function(e){if(!/input|textarea/i.test(e.target.tagName))switch(e.key){case ARROW_LEFT_KEY:e.preventDefault(),this.prev();break;case ARROW_RIGHT_KEY:e.preventDefault(),this.next()}},t._getItemIndex=function(e){return this._items=e&&e.parentNode?SelectorEngine.find(SELECTOR_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),o=this._items.length-1;if((i&&0===r||n&&r===o)&&!this._config.wrap)return t;var a=(r+(e===DIRECTION_PREV?-1:1))%this._items.length;return-1===a?this._items[this._items.length-1]:this._items[a]},t._triggerSlideEvent=function(e,t){var n=this._getItemIndex(e),i=this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element));return EventHandler.trigger(this._element,EVENT_SLIDE,{relatedTarget:e,direction:t,from:i,to:n})},t._setActiveIndicatorElement=function(e){if(this._indicatorsElement){for(var t=SelectorEngine.find(SELECTOR_ACTIVE$1,this._indicatorsElement),n=0;n<t.length;n++)t[n].classList.remove(CLASS_NAME_ACTIVE$1);var i=this._indicatorsElement.children[this._getItemIndex(e)];i&&i.classList.add(CLASS_NAME_ACTIVE$1)}},t._slide=function(e,t){var n,i,r,o=this,a=SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM,this._element),s=this._getItemIndex(a),E=t||a&&this._getItemByDirection(e,a),l=this._getItemIndex(E),_=Boolean(this._interval);if(e===DIRECTION_NEXT?(n=CLASS_NAME_LEFT,i=CLASS_NAME_NEXT,r=DIRECTION_LEFT):(n=CLASS_NAME_RIGHT,i=CLASS_NAME_PREV,r=DIRECTION_RIGHT),E&&E.classList.contains(CLASS_NAME_ACTIVE$1))this._isSliding=!1;else if(!this._triggerSlideEvent(E,r).defaultPrevented&&a&&E){if(this._isSliding=!0,_&&this.pause(),this._setActiveIndicatorElement(E),this._element.classList.contains(CLASS_NAME_SLIDE)){E.classList.add(i),reflow(E),a.classList.add(n),E.classList.add(n);var c=parseInt(E.getAttribute("data-interval"),10);c?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=c):this._config.interval=this._config.defaultInterval||this._config.interval;var u=getTransitionDurationFromElement(a);EventHandler.one(a,TRANSITION_END,(function(){E.classList.remove(n,i),E.classList.add(CLASS_NAME_ACTIVE$1),a.classList.remove(CLASS_NAME_ACTIVE$1,i,n),o._isSliding=!1,setTimeout((function(){EventHandler.trigger(o._element,EVENT_SLID,{relatedTarget:E,direction:r,from:s,to:l})}),0)})),emulateTransitionEnd(a,u)}else a.classList.remove(CLASS_NAME_ACTIVE$1),E.classList.add(CLASS_NAME_ACTIVE$1),this._isSliding=!1,EventHandler.trigger(this._element,EVENT_SLID,{relatedTarget:E,direction:r,from:s,to:l});_&&this.cycle()}},e.carouselInterface=function(t,n){var i=Data.getData(t,DATA_KEY$2),r=_objectSpread2(_objectSpread2({},Default),Manipulator.getDataAttributes(t));"object"==typeof n&&(r=_objectSpread2(_objectSpread2({},r),n));var o="string"==typeof n?n:r.slide;if(i||(i=new e(t,r)),"number"==typeof n)i.to(n);else if("string"==typeof o){if(void 0===i[o])throw new TypeError('No method named "'+o+'"');i[o]()}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=getElementFromSelector(this);if(n&&n.classList.contains(CLASS_NAME_CAROUSEL)){var i=_objectSpread2(_objectSpread2({},Manipulator.getDataAttributes(n)),Manipulator.getDataAttributes(this)),r=this.getAttribute("data-slide-to");r&&(i.interval=!1),e.carouselInterface(n,i),r&&Data.getData(n,DATA_KEY$2).to(r),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}();EventHandler.on(document,EVENT_CLICK_DATA_API$2,SELECTOR_DATA_SLIDE,Carousel.dataApiClickHandler),EventHandler.on(window,EVENT_LOAD_DATA_API,(function(){for(var e=SelectorEngine.find(SELECTOR_DATA_RIDE),t=0,n=e.length;t<n;t++)Carousel.carouselInterface(e[t],Data.getData(e[t],DATA_KEY$2))}));var $$3=getjQuery();if($$3){var JQUERY_NO_CONFLICT$2=$$3.fn[NAME$2];$$3.fn[NAME$2]=Carousel.jQueryInterface,$$3.fn[NAME$2].Constructor=Carousel,$$3.fn[NAME$2].noConflict=function(){return $$3.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_SHOW="show"+EVENT_KEY$3,EVENT_SHOWN="shown"+EVENT_KEY$3,EVENT_HIDE="hide"+EVENT_KEY$3,EVENT_HIDDEN="hidden"+EVENT_KEY$3,EVENT_CLICK_DATA_API$3="click"+EVENT_KEY$3+DATA_API_KEY$3,CLASS_NAME_SHOW="show",CLASS_NAME_COLLAPSE="collapse",CLASS_NAME_COLLAPSING="collapsing",CLASS_NAME_COLLAPSED="collapsed",WIDTH="width",HEIGHT="height",SELECTOR_ACTIVES=".show, .collapsing",SELECTOR_DATA_TOGGLE$1='[data-toggle="collapse"]',Collapse=function(){function e(e,t){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(t),this._triggerArray=SelectorEngine.find(SELECTOR_DATA_TOGGLE$1+'[href="#'+e.id+'"],'+SELECTOR_DATA_TOGGLE$1+'[data-target="#'+e.id+'"]');for(var n=SelectorEngine.find(SELECTOR_DATA_TOGGLE$1),i=0,r=n.length;i<r;i++){var o=n[i],a=getSelectorFromElement(o),s=SelectorEngine.find(a).filter((function(t){return t===e}));null!==a&&s.length&&(this._selector=a,this._triggerArray.push(o))}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(CLASS_NAME_SHOW)?this.hide():this.show()},t.show=function(){var t=this;if(!this._isTransitioning&&!this._element.classList.contains(CLASS_NAME_SHOW)){var n,i;this._parent&&0===(n=SelectorEngine.find(SELECTOR_ACTIVES,this._parent).filter((function(e){return"string"==typeof t._config.parent?e.getAttribute("data-parent")===t._config.parent:e.classList.contains(CLASS_NAME_COLLAPSE)}))).length&&(n=null);var r=SelectorEngine.findOne(this._selector);if(n){var o=n.filter((function(e){return r!==e}));if((i=o[0]?Data.getData(o[0],DATA_KEY$3):null)&&i._isTransitioning)return}if(!EventHandler.trigger(this._element,EVENT_SHOW).defaultPrevented){n&&n.forEach((function(t){r!==t&&e.collapseInterface(t,"hide"),i||Data.setData(t,DATA_KEY$3,null)}));var a=this._getDimension();this._element.classList.remove(CLASS_NAME_COLLAPSE),this._element.classList.add(CLASS_NAME_COLLAPSING),this._element.style[a]=0,this._triggerArray.length&&this._triggerArray.forEach((function(e){e.classList.remove(CLASS_NAME_COLLAPSED),e.setAttribute("aria-expanded",!0)})),this.setTransitioning(!0);var s="scroll"+(a[0].toUpperCase()+a.slice(1)),E=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,(function(){t._element.classList.remove(CLASS_NAME_COLLAPSING),t._element.classList.add(CLASS_NAME_COLLAPSE,CLASS_NAME_SHOW),t._element.style[a]="",t.setTransitioning(!1),EventHandler.trigger(t._element,EVENT_SHOWN)})),emulateTransitionEnd(this._element,E),this._element.style[a]=this._element[s]+"px"}}},t.hide=function(){var e=this;if(!this._isTransitioning&&this._element.classList.contains(CLASS_NAME_SHOW)&&!EventHandler.trigger(this._element,EVENT_HIDE).defaultPrevented){var t=this._getDimension();this._element.style[t]=this._element.getBoundingClientRect()[t]+"px",reflow(this._element),this._element.classList.add(CLASS_NAME_COLLAPSING),this._element.classList.remove(CLASS_NAME_COLLAPSE,CLASS_NAME_SHOW);var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var r=this._triggerArray[i],o=getElementFromSelector(r);o&&!o.classList.contains(CLASS_NAME_SHOW)&&(r.classList.add(CLASS_NAME_COLLAPSED),r.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[t]="";var a=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,(function(){e.setTransitioning(!1),e._element.classList.remove(CLASS_NAME_COLLAPSING),e._element.classList.add(CLASS_NAME_COLLAPSE),EventHandler.trigger(e._element,EVENT_HIDDEN)})),emulateTransitionEnd(this._element,a)}},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(_objectSpread2({},Default$1),e)).toggle=Boolean(e.toggle),typeCheckConfig(NAME$3,e,DefaultType$1),e},t._getDimension=function(){return this._element.classList.contains(WIDTH)?WIDTH: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=SELECTOR_DATA_TOGGLE$1+'[data-parent="'+t+'"]';return SelectorEngine.find(n,t).forEach((function(t){var n=getElementFromSelector(t);e._addAriaAndCollapsedClass(n,[t])})),t},t._addAriaAndCollapsedClass=function(e,t){if(e){var n=e.classList.contains(CLASS_NAME_SHOW);t.length&&t.forEach((function(e){n?e.classList.remove(CLASS_NAME_COLLAPSED):e.classList.add(CLASS_NAME_COLLAPSED),e.setAttribute("aria-expanded",n)}))}},e.collapseInterface=function(t,n){var i=Data.getData(t,DATA_KEY$3),r=_objectSpread2(_objectSpread2(_objectSpread2({},Default$1),Manipulator.getDataAttributes(t)),"object"==typeof n&&n?n:{});if(!i&&r.toggle&&"string"==typeof n&&/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}();EventHandler.on(document,EVENT_CLICK_DATA_API$3,SELECTOR_DATA_TOGGLE$1,(function(e){"A"===e.target.tagName&&e.preventDefault();var t=Manipulator.getDataAttributes(this),n=getSelectorFromElement(this);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)}))}));var $$4=getjQuery();if($$4){var JQUERY_NO_CONFLICT$3=$$4.fn[NAME$3];$$4.fn[NAME$3]=Collapse.jQueryInterface,$$4.fn[NAME$3].Constructor=Collapse,$$4.fn[NAME$3].noConflict=function(){return $$4.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_KEY="Escape",SPACE_KEY="Space",TAB_KEY="Tab",ARROW_UP_KEY="ArrowUp",ARROW_DOWN_KEY="ArrowDown",RIGHT_MOUSE_BUTTON=2,REGEXP_KEYDOWN=new RegExp(ARROW_UP_KEY+"|"+ARROW_DOWN_KEY+"|"+ESCAPE_KEY),EVENT_HIDE$1="hide"+EVENT_KEY$4,EVENT_HIDDEN$1="hidden"+EVENT_KEY$4,EVENT_SHOW$1="show"+EVENT_KEY$4,EVENT_SHOWN$1="shown"+EVENT_KEY$4,EVENT_CLICK="click"+EVENT_KEY$4,EVENT_CLICK_DATA_API$4="click"+EVENT_KEY$4+DATA_API_KEY$4,EVENT_KEYDOWN_DATA_API="keydown"+EVENT_KEY$4+DATA_API_KEY$4,EVENT_KEYUP_DATA_API="keyup"+EVENT_KEY$4+DATA_API_KEY$4,CLASS_NAME_DISABLED$1="disabled",CLASS_NAME_SHOW$1="show",CLASS_NAME_DROPUP="dropup",CLASS_NAME_DROPRIGHT="dropright",CLASS_NAME_DROPLEFT="dropleft",CLASS_NAME_MENURIGHT="dropdown-menu-right",CLASS_NAME_NAVBAR="navbar",CLASS_NAME_POSITION_STATIC="position-static",SELECTOR_DATA_TOGGLE$2='[data-toggle="dropdown"]',SELECTOR_FORM_CHILD=".dropdown form",SELECTOR_MENU=".dropdown-menu",SELECTOR_NAVBAR_NAV=".navbar-nav",SELECTOR_VISIBLE_ITEMS=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",PLACEMENT_TOP="top-start",PLACEMENT_TOPEND="top-end",PLACEMENT_BOTTOM="bottom-start",PLACEMENT_BOTTOMEND="bottom-end",PLACEMENT_RIGHT="right-start",PLACEMENT_LEFT="left-start",Default$2={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},DefaultType$2={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},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(CLASS_NAME_DISABLED$1)){var t=this._element.classList.contains(CLASS_NAME_SHOW$1);e.clearMenus(),t||this.show()}},t.show=function(){if(!(this._element.disabled||this._element.classList.contains(CLASS_NAME_DISABLED$1)||this._menu.classList.contains(CLASS_NAME_SHOW$1))){var t=e.getParentFromElement(this._element),n={relatedTarget:this._element};if(!EventHandler.trigger(this._element,EVENT_SHOW$1,n).defaultPrevented){if(!this._inNavbar){if(void 0===Popper)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var i=this._element;"parent"===this._config.reference?i=t:isElement(this._config.reference)&&(i=this._config.reference,void 0!==this._config.reference.jquery&&(i=this._config.reference[0])),"scrollParent"!==this._config.boundary&&t.classList.add(CLASS_NAME_POSITION_STATIC),this._popper=new Popper(i,this._menu,this._getPopperConfig())}var r;if("ontouchstart"in document.documentElement&&!t.closest(SELECTOR_NAVBAR_NAV))(r=[]).concat.apply(r,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,CLASS_NAME_SHOW$1),Manipulator.toggleClass(this._element,CLASS_NAME_SHOW$1),EventHandler.trigger(t,EVENT_SHOWN$1,n)}}},t.hide=function(){if(!this._element.disabled&&!this._element.classList.contains(CLASS_NAME_DISABLED$1)&&this._menu.classList.contains(CLASS_NAME_SHOW$1)){var t=e.getParentFromElement(this._element),n={relatedTarget:this._element};EventHandler.trigger(t,EVENT_HIDE$1,n).defaultPrevented||(this._popper&&this._popper.destroy(),Manipulator.toggleClass(this._menu,CLASS_NAME_SHOW$1),Manipulator.toggleClass(this._element,CLASS_NAME_SHOW$1),EventHandler.trigger(t,EVENT_HIDDEN$1,n))}},t.dispose=function(){Data.removeData(this._element,DATA_KEY$4),EventHandler.off(this._element,EVENT_KEY$4),this._element=null,this._menu=null,this._popper&&(this._popper.destroy(),this._popper=null)},t.update=function(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.scheduleUpdate()},t._addEventListeners=function(){var e=this;EventHandler.on(this._element,EVENT_CLICK,(function(t){t.preventDefault(),t.stopPropagation(),e.toggle()}))},t._getConfig=function(e){return e=_objectSpread2(_objectSpread2(_objectSpread2({},this.constructor.Default),Manipulator.getDataAttributes(this._element)),e),typeCheckConfig(NAME$4,e,this.constructor.DefaultType),e},t._getMenuElement=function(){return SelectorEngine.next(this._element,SELECTOR_MENU)[0]},t._getPlacement=function(){var e=this._element.parentNode,t=PLACEMENT_BOTTOM;return e.classList.contains(CLASS_NAME_DROPUP)?(t=PLACEMENT_TOP,this._menu.classList.contains(CLASS_NAME_MENURIGHT)&&(t=PLACEMENT_TOPEND)):e.classList.contains(CLASS_NAME_DROPRIGHT)?t=PLACEMENT_RIGHT:e.classList.contains(CLASS_NAME_DROPLEFT)?t=PLACEMENT_LEFT:this._menu.classList.contains(CLASS_NAME_MENURIGHT)&&(t=PLACEMENT_BOTTOMEND),t},t._detectNavbar=function(){return Boolean(this._element.closest("."+CLASS_NAME_NAVBAR))},t._getOffset=function(){var e=this,t={};return"function"==typeof this._config.offset?t.fn=function(t){return t.offsets=_objectSpread2(_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}),_objectSpread2(_objectSpread2({},e),this._config.popperConfig)},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.button!==RIGHT_MOUSE_BUTTON&&("keyup"!==t.type||t.key===TAB_KEY))for(var n=SelectorEngine.find(SELECTOR_DATA_TOGGLE$2),i=0,r=n.length;i<r;i++){var o=e.getParentFromElement(n[i]),a=Data.getData(n[i],DATA_KEY$4),s={relatedTarget:n[i]};if(t&&"click"===t.type&&(s.clickEvent=t),a){var E=a._menu;if(n[i].classList.contains(CLASS_NAME_SHOW$1))if(!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&t.key===TAB_KEY)&&E.contains(t.target)))if(!EventHandler.trigger(o,EVENT_HIDE$1,s).defaultPrevented){var l;if("ontouchstart"in document.documentElement)(l=[]).concat.apply(l,document.body.children).forEach((function(e){return EventHandler.off(e,"mouseover",null,noop())}));n[i].setAttribute("aria-expanded","false"),a._popper&&a._popper.destroy(),E.classList.remove(CLASS_NAME_SHOW$1),n[i].classList.remove(CLASS_NAME_SHOW$1),EventHandler.trigger(o,EVENT_HIDDEN$1,s)}}}},e.getParentFromElement=function(e){return getElementFromSelector(e)||e.parentNode},e.dataApiKeydownHandler=function(t){if(!(/input|textarea/i.test(t.target.tagName)?t.key===SPACE_KEY||t.key!==ESCAPE_KEY&&(t.key!==ARROW_DOWN_KEY&&t.key!==ARROW_UP_KEY||t.target.closest(SELECTOR_MENU)):!REGEXP_KEYDOWN.test(t.key))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!this.classList.contains(CLASS_NAME_DISABLED$1))){var n=e.getParentFromElement(this),i=this.classList.contains(CLASS_NAME_SHOW$1);if(t.key===ESCAPE_KEY)return(this.matches(SELECTOR_DATA_TOGGLE$2)?this:SelectorEngine.prev(this,SELECTOR_DATA_TOGGLE$2)[0]).focus(),void e.clearMenus();if(i&&t.key!==SPACE_KEY){var r=SelectorEngine.find(SELECTOR_VISIBLE_ITEMS,n).filter(isVisible);if(r.length){var o=r.indexOf(t.target);t.key===ARROW_UP_KEY&&o>0&&o--,t.key===ARROW_DOWN_KEY&&o<r.length-1&&o++,r[o=-1===o?0:o].focus()}}else e.clearMenus()}},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}();EventHandler.on(document,EVENT_KEYDOWN_DATA_API,SELECTOR_DATA_TOGGLE$2,Dropdown.dataApiKeydownHandler),EventHandler.on(document,EVENT_KEYDOWN_DATA_API,SELECTOR_MENU,Dropdown.dataApiKeydownHandler),EventHandler.on(document,EVENT_CLICK_DATA_API$4,Dropdown.clearMenus),EventHandler.on(document,EVENT_KEYUP_DATA_API,Dropdown.clearMenus),EventHandler.on(document,EVENT_CLICK_DATA_API$4,SELECTOR_DATA_TOGGLE$2,(function(e){e.preventDefault(),e.stopPropagation(),Dropdown.dropdownInterface(this,"toggle")})),EventHandler.on(document,EVENT_CLICK_DATA_API$4,SELECTOR_FORM_CHILD,(function(e){return e.stopPropagation()}));var $$5=getjQuery();if($$5){var JQUERY_NO_CONFLICT$4=$$5.fn[NAME$4];$$5.fn[NAME$4]=Dropdown.jQueryInterface,$$5.fn[NAME$4].Constructor=Dropdown,$$5.fn[NAME$4].noConflict=function(){return $$5.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_KEY$1="Escape",Default$3={backdrop:!0,keyboard:!0,focus:!0,show:!0},DefaultType$3={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},EVENT_HIDE$2="hide"+EVENT_KEY$5,EVENT_HIDE_PREVENTED="hidePrevented"+EVENT_KEY$5,EVENT_HIDDEN$2="hidden"+EVENT_KEY$5,EVENT_SHOW$2="show"+EVENT_KEY$5,EVENT_SHOWN$2="shown"+EVENT_KEY$5,EVENT_FOCUSIN="focusin"+EVENT_KEY$5,EVENT_RESIZE="resize"+EVENT_KEY$5,EVENT_CLICK_DISMISS="click.dismiss"+EVENT_KEY$5,EVENT_KEYDOWN_DISMISS="keydown.dismiss"+EVENT_KEY$5,EVENT_MOUSEUP_DISMISS="mouseup.dismiss"+EVENT_KEY$5,EVENT_MOUSEDOWN_DISMISS="mousedown.dismiss"+EVENT_KEY$5,EVENT_CLICK_DATA_API$5="click"+EVENT_KEY$5+DATA_API_KEY$5,CLASS_NAME_SCROLLBAR_MEASURER="modal-scrollbar-measure",CLASS_NAME_BACKDROP="modal-backdrop",CLASS_NAME_OPEN="modal-open",CLASS_NAME_FADE="fade",CLASS_NAME_SHOW$2="show",CLASS_NAME_STATIC="modal-static",SELECTOR_DIALOG=".modal-dialog",SELECTOR_MODAL_BODY=".modal-body",SELECTOR_DATA_TOGGLE$3='[data-toggle="modal"]',SELECTOR_DATA_DISMISS='[data-dismiss="modal"]',SELECTOR_FIXED_CONTENT=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",SELECTOR_STICKY_CONTENT=".sticky-top",Modal=function(){function e(e,t){this._config=this._getConfig(t),this._element=e,this._dialog=SelectorEngine.findOne(SELECTOR_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(CLASS_NAME_FADE)&&(this._isTransitioning=!0);var n=EventHandler.trigger(this._element,EVENT_SHOW$2,{relatedTarget:e});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.on(this._element,EVENT_CLICK_DISMISS,SELECTOR_DATA_DISMISS,(function(e){return t.hide(e)})),EventHandler.on(this._dialog,EVENT_MOUSEDOWN_DISMISS,(function(){EventHandler.one(t._element,EVENT_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_HIDE$2).defaultPrevented){this._isShown=!1;var n=this._element.classList.contains(CLASS_NAME_FADE);if(n&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.off(document,EVENT_FOCUSIN),this._element.classList.remove(CLASS_NAME_SHOW$2),EventHandler.off(this._element,EVENT_CLICK_DISMISS),EventHandler.off(this._dialog,EVENT_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_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(_objectSpread2({},Default$3),e),typeCheckConfig(NAME$5,e,DefaultType$3),e},t._showElement=function(e){var t=this,n=this._element.classList.contains(CLASS_NAME_FADE),i=SelectorEngine.findOne(SELECTOR_MODAL_BODY,this._dialog);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._element.scrollTop=0,i&&(i.scrollTop=0),n&&reflow(this._element),this._element.classList.add(CLASS_NAME_SHOW$2),this._config.focus&&this._enforceFocus();var r=function(){t._config.focus&&t._element.focus(),t._isTransitioning=!1,EventHandler.trigger(t._element,EVENT_SHOWN$2,{relatedTarget:e})};if(n){var o=getTransitionDurationFromElement(this._dialog);EventHandler.one(this._dialog,TRANSITION_END,r),emulateTransitionEnd(this._dialog,o)}else r()},t._enforceFocus=function(){var e=this;EventHandler.off(document,EVENT_FOCUSIN),EventHandler.on(document,EVENT_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?EventHandler.on(this._element,EVENT_KEYDOWN_DISMISS,(function(t){e._config.keyboard&&t.key===ESCAPE_KEY$1?(t.preventDefault(),e.hide()):e._config.keyboard||t.key!==ESCAPE_KEY$1||e._triggerBackdropTransition()})):EventHandler.off(this._element,EVENT_KEYDOWN_DISMISS)},t._setResizeEvent=function(){var e=this;this._isShown?EventHandler.on(window,EVENT_RESIZE,(function(){return e._adjustDialog()})):EventHandler.off(window,EVENT_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(CLASS_NAME_OPEN),e._resetAdjustments(),e._resetScrollbar(),EventHandler.trigger(e._element,EVENT_HIDDEN$2)}))},t._removeBackdrop=function(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null},t._showBackdrop=function(e){var t=this,n=this._element.classList.contains(CLASS_NAME_FADE)?CLASS_NAME_FADE:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=CLASS_NAME_BACKDROP,n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),EventHandler.on(this._element,EVENT_CLICK_DISMISS,(function(e){t._ignoreBackdropClick?t._ignoreBackdropClick=!1:e.target===e.currentTarget&&t._triggerBackdropTransition()})),n&&reflow(this._backdrop),this._backdrop.classList.add(CLASS_NAME_SHOW$2),!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(CLASS_NAME_SHOW$2);var r=function(){t._removeBackdrop(),e()};if(this._element.classList.contains(CLASS_NAME_FADE)){var o=getTransitionDurationFromElement(this._backdrop);EventHandler.one(this._backdrop,TRANSITION_END,r),emulateTransitionEnd(this._backdrop,o)}else r()}else e()},t._triggerBackdropTransition=function(){var e=this;if("static"===this._config.backdrop){if(EventHandler.trigger(this._element,EVENT_HIDE_PREVENTED).defaultPrevented)return;this._element.classList.add(CLASS_NAME_STATIC);var t=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,(function(){e._element.classList.remove(CLASS_NAME_STATIC)})),emulateTransitionEnd(this._element,t),this._element.focus()}else this.hide()},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=Math.round(e.left+e.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},t._setScrollbar=function(){var e=this;if(this._isBodyOverflowing){SelectorEngine.find(SELECTOR_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"})),SelectorEngine.find(SELECTOR_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(CLASS_NAME_OPEN)},t._resetScrollbar=function(){SelectorEngine.find(SELECTOR_FIXED_CONTENT).forEach((function(e){var t=Manipulator.getDataAttribute(e,"padding-right");void 0!==t&&(Manipulator.removeDataAttribute(e,"padding-right"),e.style.paddingRight=t)})),SelectorEngine.find(""+SELECTOR_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=CLASS_NAME_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(_objectSpread2(_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}();EventHandler.on(document,EVENT_CLICK_DATA_API$5,SELECTOR_DATA_TOGGLE$3,(function(e){var t=this,n=getElementFromSelector(this);"A"!==this.tagName&&"AREA"!==this.tagName||e.preventDefault(),EventHandler.one(n,EVENT_SHOW$2,(function(e){e.defaultPrevented||EventHandler.one(n,EVENT_HIDDEN$2,(function(){isVisible(t)&&t.focus()}))}));var i=Data.getData(n,DATA_KEY$5);if(!i){var r=_objectSpread2(_objectSpread2({},Manipulator.getDataAttributes(n)),Manipulator.getDataAttributes(this));i=new Modal(n,r)}i.show(this)}));var $$6=getjQuery();if($$6){var JQUERY_NO_CONFLICT$5=$$6.fn[NAME$5];$$6.fn[NAME$5]=Modal.jQueryInterface,$$6.fn[NAME$5].Constructor=Modal,$$6.fn[NAME$5].noConflict=function(){return $$6.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,[\d+/a-z]+=*$/i,allowedAttribute=function(e,t){var n=e.nodeName.toLowerCase();if(-1!==t.indexOf(n))return-1===uriAttrs.indexOf(n)||(SAFE_URL_PATTERN.test(e.nodeValue)||DATA_URL_PATTERN.test(e.nodeValue));for(var i=t.filter((function(e){return e instanceof RegExp})),r=0,o=i.length;r<o;r++)if(i[r].test(n))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","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function sanitizeHtml(e,t,n){var i;if(!e.length)return e;if(n&&"function"==typeof n)return n(e);for(var r=(new window.DOMParser).parseFromString(e,"text/html"),o=Object.keys(t),a=(i=[]).concat.apply(i,r.body.querySelectorAll("*")),s=function(e,n){var i,r=a[e],s=r.nodeName.toLowerCase();if(-1===o.indexOf(s))return r.parentNode.removeChild(r),"continue";var E=(i=[]).concat.apply(i,r.attributes),l=[].concat(t["*"]||[],t[s]||[]);E.forEach((function(e){allowedAttribute(e,l)||r.removeAttribute(e.nodeName)}))},E=0,l=a.length;E<l;E++)s(E);return r.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",popperConfig:"(null|object)"},AttachmentMap={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,popperConfig:null},Event$1={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},CLASS_NAME_FADE$1="fade",CLASS_NAME_MODAL="modal",CLASS_NAME_SHOW$3="show",HOVER_STATE_SHOW="show",HOVER_STATE_OUT="out",SELECTOR_TOOLTIP_INNER=".tooltip-inner",TRIGGER_HOVER="hover",TRIGGER_FOCUS="focus",TRIGGER_CLICK="click",TRIGGER_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.target,t);n||(n=new this.constructor(e.target,this._getDelegateConfig()),Data.setData(e.target,t,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(CLASS_NAME_SHOW$3))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(this.element.closest("."+CLASS_NAME_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,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(),o=getUID(this.constructor.NAME);r.setAttribute("id",o),this.element.setAttribute("aria-describedby",o),this.setContent(),this.config.animation&&r.classList.add(CLASS_NAME_FADE$1);var a="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,s=this._getAttachment(a);this._addAttachmentClass(s);var E,l=this._getContainer();if(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,this._getPopperConfig(s)),r.classList.add(CLASS_NAME_SHOW$3),"ontouchstart"in document.documentElement)(E=[]).concat.apply(E,document.body.children).forEach((function(e){EventHandler.on(e,"mouseover",noop())}));var _=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,EventHandler.trigger(e.element,e.constructor.Event.SHOWN),t===HOVER_STATE_OUT&&e._leave(null,e)};if(this.tip.classList.contains(CLASS_NAME_FADE$1)){var c=getTransitionDurationFromElement(this.tip);EventHandler.one(this.tip,TRANSITION_END,_),emulateTransitionEnd(this.tip,c)}else _()}},t.hide=function(){var e=this,t=this.getTipElement(),n=function(){e._hoverState!==HOVER_STATE_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){var i;if(t.classList.remove(CLASS_NAME_SHOW$3),"ontouchstart"in document.documentElement)(i=[]).concat.apply(i,document.body.children).forEach((function(e){return EventHandler.off(e,"mouseover",noop)}));if(this._activeTrigger[TRIGGER_CLICK]=!1,this._activeTrigger[TRIGGER_FOCUS]=!1,this._activeTrigger[TRIGGER_HOVER]=!1,this.tip.classList.contains(CLASS_NAME_FADE$1)){var r=getTransitionDurationFromElement(t);EventHandler.one(t,TRANSITION_END,n),emulateTransitionEnd(t,r)}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_TOOLTIP_INNER,e),this.getTitle()),e.classList.remove(CLASS_NAME_FADE$1,CLASS_NAME_SHOW$3)},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.textContent=t.textContent)):void(this.config.html?(this.config.sanitize&&(t=sanitizeHtml(t,this.config.whiteList,this.config.sanitizeFn)),e.innerHTML=t):e.textContent=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._getPopperConfig=function(e){var t=this;return _objectSpread2(_objectSpread2({},{placement:e,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)}}),this.config.popperConfig)},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(_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[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(this.element.closest("."+CLASS_NAME_MODAL),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=_objectSpread2(_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.target,n))||(t=new this.constructor(e.target,this._getDelegateConfig()),Data.setData(e.target,n,t)),e&&(t._activeTrigger["focusin"===e.type?TRIGGER_FOCUS:TRIGGER_HOVER]=!0),t.getTipElement().classList.contains(CLASS_NAME_SHOW$3)||t._hoverState===HOVER_STATE_SHOW?t._hoverState=HOVER_STATE_SHOW:(clearTimeout(t._timeout),t._hoverState=HOVER_STATE_SHOW,t.config.delay&&t.config.delay.show?t._timeout=setTimeout((function(){t._hoverState===HOVER_STATE_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.target,n))||(t=new this.constructor(e.target,this._getDelegateConfig()),Data.setData(e.target,n,t)),e&&(t._activeTrigger["focusout"===e.type?TRIGGER_FOCUS:TRIGGER_HOVER]=!1),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=HOVER_STATE_OUT,t.config.delay&&t.config.delay.hide?t._timeout=setTimeout((function(){t._hoverState===HOVER_STATE_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(_objectSpread2(_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>0&&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(CLASS_NAME_FADE$1),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$1}},{key:"EVENT_KEY",get:function(){return EVENT_KEY$6}},{key:"DefaultType",get:function(){return DefaultType$4}}]),e}(),$$7=getjQuery();if($$7){var JQUERY_NO_CONFLICT$6=$$7.fn[NAME$6];$$7.fn[NAME$6]=Tooltip.jQueryInterface,$$7.fn[NAME$6].Constructor=Tooltip,$$7.fn[NAME$6].noConflict=function(){return $$7.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(_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(_objectSpread2({},Tooltip.DefaultType),{},{content:"(string|element|function)"}),Event$2={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},CLASS_NAME_FADE$2="fade",CLASS_NAME_SHOW$4="show",SELECTOR_TITLE=".popover-header",SELECTOR_CONTENT=".popover-body",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.setContent=function(){var e=this.getTipElement();this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE,e),this.getTitle());var t=this._getContent();"function"==typeof t&&(t=t.call(this.element)),this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT,e),t),e.classList.remove(CLASS_NAME_FADE$2,CLASS_NAME_SHOW$4)},n._addAttachmentClass=function(e){this.getTipElement().classList.add(CLASS_PREFIX$1+"-"+e)},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$2}},{key:"EVENT_KEY",get:function(){return EVENT_KEY$7}},{key:"DefaultType",get:function(){return DefaultType$5}}]),t}(Tooltip),$$8=getjQuery();if($$8){var JQUERY_NO_CONFLICT$7=$$8.fn[NAME$7];$$8.fn[NAME$7]=Popover.jQueryInterface,$$8.fn[NAME$7].Constructor=Popover,$$8.fn[NAME$7].noConflict=function(){return $$8.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_ACTIVATE="activate"+EVENT_KEY$8,EVENT_SCROLL="scroll"+EVENT_KEY$8,EVENT_LOAD_DATA_API$1="load"+EVENT_KEY$8+DATA_API_KEY$6,CLASS_NAME_DROPDOWN_ITEM="dropdown-item",CLASS_NAME_ACTIVE$2="active",SELECTOR_DATA_SPY='[data-spy="scroll"]',SELECTOR_NAV_LIST_GROUP=".nav, .list-group",SELECTOR_NAV_LINKS=".nav-link",SELECTOR_NAV_ITEMS=".nav-item",SELECTOR_LIST_ITEMS=".list-group-item",SELECTOR_DROPDOWN=".dropdown",SELECTOR_DROPDOWN_TOGGLE=".dropdown-toggle",METHOD_OFFSET="offset",METHOD_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_NAV_LINKS+","+this._config.target+" "+SELECTOR_LIST_ITEMS+","+this._config.target+" ."+CLASS_NAME_DROPDOWN_ITEM,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,EventHandler.on(this._scrollElement,EVENT_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?METHOD_OFFSET:METHOD_POSITION,n="auto"===this._config.method?t:this._config.method,i=n===METHOD_POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),SelectorEngine.find(this._selector).map((function(e){var t,r=getSelectorFromElement(e);if(r&&(t=SelectorEngine.findOne(r)),t){var o=t.getBoundingClientRect();if(o.width||o.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(_objectSpread2({},Default$6),"object"==typeof e&&e?e:{})).target&&isElement(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(CLASS_NAME_DROPDOWN_ITEM)?(SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE,n.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$2),n.classList.add(CLASS_NAME_ACTIVE$2)):(n.classList.add(CLASS_NAME_ACTIVE$2),SelectorEngine.parents(n,SELECTOR_NAV_LIST_GROUP).forEach((function(e){SelectorEngine.prev(e,SELECTOR_NAV_LINKS+", "+SELECTOR_LIST_ITEMS).forEach((function(e){return e.classList.add(CLASS_NAME_ACTIVE$2)})),SelectorEngine.prev(e,SELECTOR_NAV_ITEMS).forEach((function(e){SelectorEngine.children(e,SELECTOR_NAV_LINKS).forEach((function(e){return e.classList.add(CLASS_NAME_ACTIVE$2)}))}))}))),EventHandler.trigger(this._scrollElement,EVENT_ACTIVATE,{relatedTarget:e})},t._clear=function(){SelectorEngine.find(this._selector).filter((function(e){return e.classList.contains(CLASS_NAME_ACTIVE$2)})).forEach((function(e){return e.classList.remove(CLASS_NAME_ACTIVE$2)}))},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}();EventHandler.on(window,EVENT_LOAD_DATA_API$1,(function(){SelectorEngine.find(SELECTOR_DATA_SPY).forEach((function(e){return new ScrollSpy(e,Manipulator.getDataAttributes(e))}))}));var $$9=getjQuery();if($$9){var JQUERY_NO_CONFLICT$8=$$9.fn[NAME$8];$$9.fn[NAME$8]=ScrollSpy.jQueryInterface,$$9.fn[NAME$8].Constructor=ScrollSpy,$$9.fn[NAME$8].noConflict=function(){return $$9.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_HIDE$3="hide"+EVENT_KEY$9,EVENT_HIDDEN$3="hidden"+EVENT_KEY$9,EVENT_SHOW$3="show"+EVENT_KEY$9,EVENT_SHOWN$3="shown"+EVENT_KEY$9,EVENT_CLICK_DATA_API$6="click"+EVENT_KEY$9+DATA_API_KEY$7,CLASS_NAME_DROPDOWN_MENU="dropdown-menu",CLASS_NAME_ACTIVE$3="active",CLASS_NAME_DISABLED$2="disabled",CLASS_NAME_FADE$3="fade",CLASS_NAME_SHOW$5="show",SELECTOR_DROPDOWN$1=".dropdown",SELECTOR_NAV_LIST_GROUP$1=".nav, .list-group",SELECTOR_ACTIVE$2=".active",SELECTOR_ACTIVE_UL=":scope > li > .active",SELECTOR_DATA_TOGGLE$4='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',SELECTOR_DROPDOWN_TOGGLE$1=".dropdown-toggle",SELECTOR_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(CLASS_NAME_ACTIVE$3)||this._element.classList.contains(CLASS_NAME_DISABLED$2))){var t,n=getElementFromSelector(this._element),i=this._element.closest(SELECTOR_NAV_LIST_GROUP$1);if(i){var r="UL"===i.nodeName||"OL"===i.nodeName?SELECTOR_ACTIVE_UL:SELECTOR_ACTIVE$2;t=(t=SelectorEngine.find(r,i))[t.length-1]}var o=null;if(t&&(o=EventHandler.trigger(t,EVENT_HIDE$3,{relatedTarget:this._element})),!(EventHandler.trigger(this._element,EVENT_SHOW$3,{relatedTarget:t}).defaultPrevented||null!==o&&o.defaultPrevented)){this._activate(this._element,i);var a=function(){EventHandler.trigger(t,EVENT_HIDDEN$3,{relatedTarget:e._element}),EventHandler.trigger(e._element,EVENT_SHOWN$3,{relatedTarget:t})};n?this._activate(n,n.parentNode,a):a()}}},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_ACTIVE$2):SelectorEngine.find(SELECTOR_ACTIVE_UL,t))[0],o=n&&r&&r.classList.contains(CLASS_NAME_FADE$3),a=function(){return i._transitionComplete(e,r,n)};if(r&&o){var s=getTransitionDurationFromElement(r);r.classList.remove(CLASS_NAME_SHOW$5),EventHandler.one(r,TRANSITION_END,a),emulateTransitionEnd(r,s)}else a()},t._transitionComplete=function(e,t,n){if(t){t.classList.remove(CLASS_NAME_ACTIVE$3);var i=SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD,t.parentNode);i&&i.classList.remove(CLASS_NAME_ACTIVE$3),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}(e.classList.add(CLASS_NAME_ACTIVE$3),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),reflow(e),e.classList.contains(CLASS_NAME_FADE$3)&&e.classList.add(CLASS_NAME_SHOW$5),e.parentNode&&e.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU))&&(e.closest(SELECTOR_DROPDOWN$1)&&SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE$1).forEach((function(e){return e.classList.add(CLASS_NAME_ACTIVE$3)})),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}();EventHandler.on(document,EVENT_CLICK_DATA_API$6,SELECTOR_DATA_TOGGLE$4,(function(e){e.preventDefault(),(Data.getData(this,DATA_KEY$9)||new Tab(this)).show()}));var $$a=getjQuery();if($$a){var JQUERY_NO_CONFLICT$9=$$a.fn[NAME$9];$$a.fn[NAME$9]=Tab.jQueryInterface,$$a.fn[NAME$9].Constructor=Tab,$$a.fn[NAME$9].noConflict=function(){return $$a.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_CLICK_DISMISS$1="click.dismiss"+EVENT_KEY$a,EVENT_HIDE$4="hide"+EVENT_KEY$a,EVENT_HIDDEN$4="hidden"+EVENT_KEY$a,EVENT_SHOW$4="show"+EVENT_KEY$a,EVENT_SHOWN$4="shown"+EVENT_KEY$a,CLASS_NAME_FADE$4="fade",CLASS_NAME_HIDE="hide",CLASS_NAME_SHOW$6="show",CLASS_NAME_SHOWING="showing",DefaultType$7={animation:"boolean",autohide:"boolean",delay:"number"},Default$7={animation:!0,autohide:!0,delay:500},SELECTOR_DATA_DISMISS$1='[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_SHOW$4).defaultPrevented){this._config.animation&&this._element.classList.add(CLASS_NAME_FADE$4);var t=function(){e._element.classList.remove(CLASS_NAME_SHOWING),e._element.classList.add(CLASS_NAME_SHOW$6),EventHandler.trigger(e._element,EVENT_SHOWN$4),e._config.autohide&&(e._timeout=setTimeout((function(){e.hide()}),e._config.delay))};if(this._element.classList.remove(CLASS_NAME_HIDE),reflow(this._element),this._element.classList.add(CLASS_NAME_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(CLASS_NAME_SHOW$6)&&!EventHandler.trigger(this._element,EVENT_HIDE$4).defaultPrevented){var t=function(){e._element.classList.add(CLASS_NAME_HIDE),EventHandler.trigger(e._element,EVENT_HIDDEN$4)};if(this._element.classList.remove(CLASS_NAME_SHOW$6),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(CLASS_NAME_SHOW$6)&&this._element.classList.remove(CLASS_NAME_SHOW$6),EventHandler.off(this._element,EVENT_CLICK_DISMISS$1),Data.removeData(this._element,DATA_KEY$a),this._element=null,this._config=null},t._getConfig=function(e){return e=_objectSpread2(_objectSpread2(_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_CLICK_DISMISS$1,SELECTOR_DATA_DISMISS$1,(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}(),$$b=getjQuery();if($$b){var JQUERY_NO_CONFLICT$a=$$b.fn[NAME$a];$$b.fn[NAME$a]=Toast.jQueryInterface,$$b.fn[NAME$a].Constructor=Toast,$$b.fn[NAME$a].noConflict=function(){return $$b.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 ac0898f71e..69b84144d2 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","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","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","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","find","Element","prototype","querySelectorAll","findOne","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","scopeSelectorRegex","supportScopeQuery","_","this","hasId","Boolean","nodeList","replace","removeAttribute","matches","$","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","slice","keyHandlers","trigger","args","jQueryEvent","isNative","bubbles","nativeDispatch","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","NODE_TEXT","SelectorEngine","_ref","concat","findFn","children","_ref2","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","previous","previousElementSibling","next","nextElementSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASSNAME_ALERT","CLASSNAME_FADE","CLASSNAME_SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","_this","classList","remove","contains","_destroyElement","removeChild","jQueryInterface","each","handleDismiss","alertInstance","getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","CLASS_NAME_ACTIVE","CLASS_NAME_BUTTON","CLASS_NAME_DISABLED","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLE","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_FOCUS_DATA_API","EVENT_BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread2","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","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","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","_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","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_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","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_NAVBAR","CLASS_NAME_POSITION_STATIC","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","flip","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","clearMenus","getParentFromElement","Popper","referenceElement","_getPopperConfig","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_this5","_triggerBackdropTransition","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","_this9","modalTransitionDuration","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","_this10","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","_this11","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","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","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_MODAL","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_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","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","hideEvent","active","_transitionComplete","dropdownChild","dropdown","CLASS_NAME_HIDE","CLASS_NAME_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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = 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() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\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 element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n 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 isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\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 find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('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\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (_) {\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 find,\n findOne,\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 { getjQuery } from '../util/index'\nimport { defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst $ = getjQuery()\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.slice(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 && $) {\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 = new CustomEvent(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 } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n return [].concat(...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 = [].concat(...element.children)\n\n return children.filter(child => child.matches(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 element.closest(selector)\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\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_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\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 let parent = getElementFromSelector(element)\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif ($) {\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 { getjQuery } 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 CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"buttons\"]'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_BLUR_DATA_API = `blur${EVENT_KEY}${DATA_API_KEY}`\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 && input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains(CLASS_NAME_DISABLED) ||\n rootElement.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n input.checked = !this._element.classList.contains(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_FOCUS)\n }\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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'\n\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = 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 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(CLASS_NAME_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 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(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_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 = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_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 target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_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 = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\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_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = 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(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = 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(CLASS_NAME_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(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_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(WIDTH)\n return hasWidth ? WIDTH : 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 = `${SELECTOR_DATA_TOGGLE}[data-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\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(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_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 = 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getElementFromSelector,\n isElement,\n isVisible,\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'\n\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)\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n 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(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_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(this._element, 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 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(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !SelectorEngine.closest(parent, SELECTOR_NAVBAR_NAV)) {\n [].concat(...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, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_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 if (this._popper) {\n this._popper.destroy()\n }\n\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_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) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\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 return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = PLACEMENT_TOP\n if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_TOPEND\n }\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, `.${CLASS_NAME_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 {\n ...popperConfig,\n ...this._config.popperConfig\n }\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 = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = 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 (!toggles[i].classList.contains(CLASS_NAME_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 dropdownMenu.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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || 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(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.which === ESCAPE_KEYCODE) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.which === SPACE_KEYCODE) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent)\n .filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target) || 0\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 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\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(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.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(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (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) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else {\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(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n 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 this._triggerBackdropTransition()\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_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(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_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 _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._element)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\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 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 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(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n 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 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 = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.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 target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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\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,[\\d+/a-z]+=*$/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 SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\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', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\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 = [].concat(...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 = [].concat(...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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\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 popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"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 popperConfig: null\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 CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.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(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n 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, `.${CLASS_NAME_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) {\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(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n 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, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_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 [].concat(...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 === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_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 !== HOVER_STATE_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(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...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(CLASS_NAME_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(CLASS_NAME_FADE)\n tip.classList.remove(CLASS_NAME_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 _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${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 return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\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, `.${CLASS_NAME_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(CLASS_NAME_SHOW) ||\n context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || 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 = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = 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 > 0) {\n tabClass.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(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 { getjQuery } 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 Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\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 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(CLASS_NAME_FADE)\n tip.classList.remove(CLASS_NAME_SHOW)\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\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 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getSelectorFromElement,\n getUID,\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_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} .${CLASS_NAME_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 METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = 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(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(SELECTOR_DROPDOWN_TOGGLE, SelectorEngine.closest(link, SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = 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 SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\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_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\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(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = SelectorEngine.closest(this._element, SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = 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 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\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_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n 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(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n 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(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_HIDE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_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(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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/alert.js","../../js/src/dom/selector-engine.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","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","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","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","find","Element","prototype","querySelectorAll","findOne","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","scopeSelectorRegex","supportScopeQuery","_","this","hasId","Boolean","nodeList","replace","removeAttribute","matches","$","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","bootstrapHandler","fn","handler","event","oneOff","EventHandler","off","type","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","slice","keyHandlers","trigger","args","jQueryEvent","isNative","bubbles","nativeDispatch","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASSNAME_ALERT","CLASSNAME_FADE","CLASSNAME_SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","closest","_this","classList","remove","contains","_destroyElement","removeChild","jQueryInterface","each","handleDismiss","alertInstance","getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","NODE_TEXT","SelectorEngine","_ref","concat","findFn","children","_ref2","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","previous","previousElementSibling","next","nextElementSibling","CLASS_NAME_ACTIVE","CLASS_NAME_DISABLED","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLE","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_FOCUS_DATA_API","EVENT_BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread2","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_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","parent","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_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_KEY","SPACE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_NAVBAR","CLASS_NAME_POSITION_STATIC","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","flip","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","clearMenus","getParentFromElement","Popper","referenceElement","_getPopperConfig","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_this5","_triggerBackdropTransition","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","_this9","modalTransitionDuration","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","round","right","innerWidth","_getScrollbarWidth","_this10","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","_this11","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","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","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_MODAL","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_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","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","hideEvent","active","_transitionComplete","dropdownChild","dropdown","CLASS_NAME_HIDE","CLASS_NAME_SHOWING","autohide","Toast"],"mappings":";;;;;spCAOA,IAAMA,QAAU,IACVC,wBAA0B,IAC1BC,eAAiB,gBAGjBC,OAAS,SAAAC,GACb,OAAIA,MAAAA,EACF,GAAUA,EAGL,GAAGC,SAASC,KAAKF,GAAKG,MAAM,eAAe,GAAGC,eASjDC,OAAS,SAAAC,GACb,GACEA,MAAaC,KAAKC,SAAWZ,eACtBa,SAASC,eAAeJ,IAEjC,OAAOA,GAGHK,YAAc,SAAAC,GAClB,IAAIC,EAAWD,EAAQE,aAAa,eAEpC,IAAKD,GAAyB,MAAbA,EAAkB,CACjC,IAAME,EAAWH,EAAQE,aAAa,QAEtCD,EAAWE,GAAyB,MAAbA,EAAmBA,EAASC,OAAS,KAG9D,OAAOH,GAGHI,uBAAyB,SAAAL,GAC7B,IAAMC,EAAWF,YAAYC,GAE7B,OAAIC,GACKJ,SAASS,cAAcL,GAAYA,EAGrC,MAGHM,uBAAyB,SAAAP,GAC7B,IAAMC,EAAWF,YAAYC,GAE7B,OAAOC,EAAWJ,SAASS,cAAcL,GAAY,MAGjDO,iCAAmC,SAAAR,GACvC,IAAKA,EACH,OAAO,EAFyC,IAAAS,EAS9CC,OAAOC,iBAAiBX,GAF1BY,EAPgDH,EAOhDG,mBACAC,EARgDJ,EAQhDI,gBAGIC,EAA0BC,WAAWH,GACrCI,EAAuBD,WAAWF,GAGxC,OAAKC,GAA4BE,GAKjCJ,EAAqBA,EAAmBK,MAAM,KAAK,GACnDJ,EAAkBA,EAAgBI,MAAM,KAAK,IAErCF,WAAWH,GAAsBG,WAAWF,IAAoB5B,yBAP/D,GAULiC,qBAAuB,SAAAlB,GAC3BA,EAAQmB,cAAc,IAAIC,MAAMlC,kBAG5BmC,UAAY,SAAAjC,GAAG,OAAKA,EAAI,IAAMA,GAAKkC,UAEnCC,qBAAuB,SAACvB,EAASwB,GACrC,IAAIC,GAAS,EAEPC,EAAmBF,EADD,EAOxBxB,EAAQ2B,iBAAiBzC,gBALzB,SAAS0C,IACPH,GAAS,EACTzB,EAAQ6B,oBAAoB3C,eAAgB0C,MAI9CE,YAAW,WACJL,GACHP,qBAAqBlB,KAEtB0B,IAGCK,gBAAkB,SAACC,EAAeC,EAAQC,GAC9CC,OAAOC,KAAKF,GACTG,SAAQ,SAAAC,GACP,IAAMC,EAAgBL,EAAYI,GAC5BE,EAAQP,EAAOK,GACfG,EAAYD,GAASnB,UAAUmB,GACnC,UACArD,OAAOqD,GAET,IAAK,IAAIE,OAAOH,GAAeI,KAAKF,GAClC,MAAM,IAAIG,MACLZ,EAAca,cAAdb,aACQM,EADX,oBACuCG,EADpCT,wBAEmBO,EAFtB,UAOJO,UAAY,SAAA9C,GAChB,IAAKA,EACH,OAAO,EAGT,GAAIA,EAAQ+C,OAAS/C,EAAQgD,YAAchD,EAAQgD,WAAWD,MAAO,CACnE,IAAME,EAAetC,iBAAiBX,GAChCkD,EAAkBvC,iBAAiBX,EAAQgD,YAEjD,MAAgC,SAAzBC,EAAaE,SACU,SAA5BD,EAAgBC,SACY,WAA5BF,EAAaG,WAGjB,OAAO,GAGHC,eAAiB,SAAjBA,EAAiBrD,GACrB,IAAKH,SAASyD,gBAAgBC,aAC5B,OAAO,KAIT,GAAmC,mBAAxBvD,EAAQwD,YAA4B,CAC7C,IAAMC,EAAOzD,EAAQwD,cACrB,OAAOC,aAAgBC,WAAaD,EAAO,KAG7C,OAAIzD,aAAmB0D,WACd1D,EAIJA,EAAQgD,WAINK,EAAerD,EAAQgD,YAHrB,MAMLW,KAAO,WAAA,OAAM,cAEbC,OAAS,SAAA5D,GAAO,OAAIA,EAAQ6D,cAE5BC,UAAY,WAAM,IACdC,EAAWrD,OAAXqD,OAER,OAAIA,IAAWlE,SAASmE,KAAKC,aAAa,kBACjCF,EAGF,MCvKHG,QAAW,WACf,IAAMC,EAAY,GACdC,EAAK,EACT,MAAO,CACLC,IADK,SACDrE,EAASsE,EAAKC,QACW,IAAhBvE,EAAQsE,MACjBtE,EAAQsE,IAAM,CACZA,IAAAA,EACAF,GAAAA,GAEFA,KAGFD,EAAUnE,EAAQsE,IAAIF,IAAMG,GAE9BC,IAZK,SAYDxE,EAASsE,GACX,IAAKtE,QAAkC,IAAhBA,EAAQsE,IAC7B,OAAO,KAGT,IAAMG,EAAgBzE,EAAQsE,IAC9B,OAAIG,EAAcH,MAAQA,EACjBH,EAAUM,EAAcL,IAG1B,MAETM,OAxBK,SAwBE1E,EAASsE,GACd,QAA2B,IAAhBtE,EAAQsE,IAAnB,CAIA,IAAMG,EAAgBzE,EAAQsE,IAC1BG,EAAcH,MAAQA,WACjBH,EAAUM,EAAcL,WACxBpE,EAAQsE,QAnCN,GAyCXK,KAAO,CACXC,QADW,SACHC,EAAUP,EAAKC,GACrBL,QAAQG,IAAIQ,EAAUP,EAAKC,IAE7BO,QAJW,SAIHD,EAAUP,GAChB,OAAOJ,QAAQM,IAAIK,EAAUP,IAE/BS,WAPW,SAOAF,EAAUP,GACnBJ,QAAQQ,OAAOG,EAAUP,KCnDzBU,KAAOC,QAAQC,UAAUC,iBACzBC,QAAUH,QAAQC,UAAU5E,cAG1B+E,oCAAuC,WAC3C,IAAMC,EAAI,IAAIC,YAAY,YAAa,CACrCC,YAAY,IAGRxF,EAAUH,SAAS4F,cAAc,OAKvC,OAJAzF,EAAQ2B,iBAAiB,aAAa,WAAA,OAAM,QAE5C2D,EAAEI,iBACF1F,EAAQmB,cAAcmE,GACfA,EAAEK,iBAVkC,GAavCC,mBAAqB,WACrBC,kBAAqB,WACzB,IAAM7F,EAAUH,SAAS4F,cAAc,OAEvC,IACEzF,EAAQmF,iBAAiB,YACzB,MAAOW,GACP,OAAO,EAGT,OAAO,EATkB,GAYtBD,oBACHb,KAAO,SAAU/E,GACf,IAAK2F,mBAAmBjD,KAAK1C,GAC3B,OAAO8F,KAAKZ,iBAAiBlF,GAG/B,IAAM+F,EAAQC,QAAQF,KAAK3B,IAEtB4B,IACHD,KAAK3B,GAAK3E,OAAO,UAGnB,IAAIyG,EAAW,KACf,IACEjG,EAAWA,EAASkG,QAAQP,mBAAjB,IAAyCG,KAAK3B,IACzD8B,EAAWH,KAAKZ,iBAAiBlF,GAFnC,QAIO+F,GACHD,KAAKK,gBAAgB,MAIzB,OAAOF,GAGTd,QAAU,SAAUnF,GAClB,IAAK2F,mBAAmBjD,KAAK1C,GAC3B,OAAO8F,KAAKzF,cAAcL,GAG5B,IAAMoG,EAAUrB,KAAK1F,KAAKyG,KAAM9F,GAEhC,YAA0B,IAAfoG,EAAQ,GACVA,EAAQ,GAGV,OC7DX,IAAMC,EAAIxC,YACJyC,eAAiB,qBACjBC,eAAiB,OACjBC,cAAgB,SAChBC,cAAgB,GAClBC,SAAW,EACTC,aAAe,CACnBC,WAAY,YACZC,WAAY,YAERC,aAAe,CACnB,QACA,WACA,UACA,YACA,cACA,aACA,iBACA,YACA,WACA,YACA,cACA,YACA,UACA,WACA,QACA,oBACA,aACA,YACA,WACA,cACA,cACA,cACA,YACA,eACA,gBACA,eACA,gBACA,aACA,QACA,OACA,SACA,QACA,SACA,SACA,UACA,WACA,OACA,SACA,eACA,SACA,OACA,mBACA,mBACA,QACA,QACA,UASF,SAASC,YAAYhH,EAASiH,GAC5B,OAAQA,GAAUA,EAAP,KAAeN,YAAiB3G,EAAQ2G,UAAYA,WAGjE,SAASO,SAASlH,GAChB,IAAMiH,EAAMD,YAAYhH,GAKxB,OAHAA,EAAQ2G,SAAWM,EACnBP,cAAcO,GAAOP,cAAcO,IAAQ,GAEpCP,cAAcO,GAGvB,SAASE,iBAAiBnH,EAASoH,GACjC,OAAO,SAASC,EAAQC,GAKtB,OAJID,EAAQE,QACVC,aAAaC,IAAIzH,EAASsH,EAAMI,KAAMN,GAGjCA,EAAGO,MAAM3H,EAAS,CAACsH,KAI9B,SAASM,2BAA2B5H,EAASC,EAAUmH,GACrD,OAAO,SAASC,EAAQC,GAGtB,IAFA,IAAMO,EAAc7H,EAAQmF,iBAAiBlF,GAElC6H,EAAWR,EAAXQ,OAAkBA,GAAUA,IAAW/B,KAAM+B,EAASA,EAAO9E,WACtE,IAAK,IAAI+E,EAAIF,EAAYG,OAAQD,KAC/B,GAAIF,EAAYE,KAAOD,EAKrB,OAJIT,EAAQE,QACVC,aAAaC,IAAIzH,EAASsH,EAAMI,KAAMN,GAGjCA,EAAGO,MAAMG,EAAQ,CAACR,IAM/B,OAAO,MAIX,SAASW,YAAYC,EAAQb,EAASc,QAA2B,IAA3BA,IAAAA,EAAqB,MAGzD,IAFA,IAAMC,EAAejG,OAAOC,KAAK8F,GAExBH,EAAI,EAAGM,EAAMD,EAAaJ,OAAQD,EAAIM,EAAKN,IAAK,CACvD,IAAMT,EAAQY,EAAOE,EAAaL,IAElC,GAAIT,EAAMgB,kBAAoBjB,GAAWC,EAAMa,qBAAuBA,EACpE,OAAOb,EAIX,OAAO,KAGT,SAASiB,gBAAgBC,EAAmBnB,EAASoB,GACnD,IAAMC,EAAgC,iBAAZrB,EACpBiB,EAAkBI,EAAaD,EAAepB,EAGhDsB,EAAYH,EAAkBrC,QAAQK,eAAgB,IACpDoC,EAAShC,aAAa+B,GAY5B,OAVIC,IACFD,EAAYC,GAGG7B,aAAa8B,QAAQF,IAAc,IAGlDA,EAAYH,GAGP,CAACE,EAAYJ,EAAiBK,GAGvC,SAASG,WAAW9I,EAASwI,EAAmBnB,EAASoB,EAAclB,GACrE,GAAiC,iBAAtBiB,GAAmCxI,EAA9C,CAIKqH,IACHA,EAAUoB,EACVA,EAAe,MAP4D,IAAAM,EAU5BR,gBAAgBC,EAAmBnB,EAASoB,GAAtFC,EAVsEK,EAAA,GAU1DT,EAV0DS,EAAA,GAUzCJ,EAVyCI,EAAA,GAWvEb,EAAShB,SAASlH,GAClBgJ,EAAWd,EAAOS,KAAeT,EAAOS,GAAa,IACrDM,EAAahB,YAAYe,EAAUV,EAAiBI,EAAarB,EAAU,MAEjF,GAAI4B,EACFA,EAAW1B,OAAS0B,EAAW1B,QAAUA,MAD3C,CAMA,IAAMN,EAAMD,YAAYsB,EAAiBE,EAAkBrC,QAAQI,eAAgB,KAC7Ea,EAAKsB,EACTd,2BAA2B5H,EAASqH,EAASoB,GAC7CtB,iBAAiBnH,EAASqH,GAE5BD,EAAGe,mBAAqBO,EAAarB,EAAU,KAC/CD,EAAGkB,gBAAkBA,EACrBlB,EAAGG,OAASA,EACZH,EAAGT,SAAWM,EACd+B,EAAS/B,GAAOG,EAEhBpH,EAAQ2B,iBAAiBgH,EAAWvB,EAAIsB,KAG1C,SAASQ,cAAclJ,EAASkI,EAAQS,EAAWtB,EAASc,GAC1D,IAAMf,EAAKa,YAAYC,EAAOS,GAAYtB,EAASc,GAE9Cf,IAILpH,EAAQ6B,oBAAoB8G,EAAWvB,EAAInB,QAAQkC,WAC5CD,EAAOS,GAAWvB,EAAGT,WAG9B,SAASwC,yBAAyBnJ,EAASkI,EAAQS,EAAWS,GAC5D,IAAMC,EAAoBnB,EAAOS,IAAc,GAE/CxG,OAAOC,KAAKiH,GACThH,SAAQ,SAAAiH,GACP,GAAIA,EAAWT,QAAQO,IAAc,EAAG,CACtC,IAAM9B,EAAQ+B,EAAkBC,GAEhCJ,cAAclJ,EAASkI,EAAQS,EAAWrB,EAAMgB,gBAAiBhB,EAAMa,wBAK/E,IAAMX,aAAe,CACnB+B,GADmB,SAChBvJ,EAASsH,EAAOD,EAASoB,GAC1BK,WAAW9I,EAASsH,EAAOD,EAASoB,GAAc,IAGpDe,IALmB,SAKfxJ,EAASsH,EAAOD,EAASoB,GAC3BK,WAAW9I,EAASsH,EAAOD,EAASoB,GAAc,IAGpDhB,IATmB,SASfzH,EAASwI,EAAmBnB,EAASoB,GACvC,GAAiC,iBAAtBD,GAAmCxI,EAA9C,CADqD,IAAAyJ,EAKJlB,gBAAgBC,EAAmBnB,EAASoB,GAAtFC,EAL8Ce,EAAA,GAKlCnB,EALkCmB,EAAA,GAKjBd,EALiBc,EAAA,GAM/CC,EAAcf,IAAcH,EAC5BN,EAAShB,SAASlH,GAClB2J,EAA8C,MAAhCnB,EAAkBoB,OAAO,GAE7C,QAA+B,IAApBtB,EAAX,CAUIqB,GACFxH,OAAOC,KAAK8F,GACT7F,SAAQ,SAAAwH,GACPV,yBAAyBnJ,EAASkI,EAAQ2B,EAAcrB,EAAkBsB,MAAM,OAItF,IAAMT,EAAoBnB,EAAOS,IAAc,GAC/CxG,OAAOC,KAAKiH,GACThH,SAAQ,SAAA0H,GACP,IAAMT,EAAaS,EAAY5D,QAAQM,cAAe,IAEtD,IAAKiD,GAAelB,EAAkBK,QAAQS,IAAe,EAAG,CAC9D,IAAMhC,EAAQ+B,EAAkBU,GAEhCb,cAAclJ,EAASkI,EAAQS,EAAWrB,EAAMgB,gBAAiBhB,EAAMa,4BAzB7E,CAEE,IAAKD,IAAWA,EAAOS,GACrB,OAGFO,cAAclJ,EAASkI,EAAQS,EAAWL,EAAiBI,EAAarB,EAAU,SAwBtF2C,QAjDmB,SAiDXhK,EAASsH,EAAO2C,GACtB,GAAqB,iBAAV3C,IAAuBtH,EAChC,OAAO,KAGT,IAIIkK,EAJEvB,EAAYrB,EAAMnB,QAAQK,eAAgB,IAC1CkD,EAAcpC,IAAUqB,EACxBwB,EAAWpD,aAAa8B,QAAQF,IAAc,EAGhDyB,GAAU,EACVC,GAAiB,EACjB1E,GAAmB,EACnB2E,EAAM,KAmDV,OAjDIZ,GAAepD,IACjB4D,EAAc5D,EAAElF,MAAMkG,EAAO2C,GAE7B3D,EAAEtG,GAASgK,QAAQE,GACnBE,GAAWF,EAAYK,uBACvBF,GAAkBH,EAAYM,gCAC9B7E,EAAmBuE,EAAYO,sBAG7BN,GACFG,EAAMzK,SAAS6K,YAAY,eACvBC,UAAUhC,EAAWyB,GAAS,GAElCE,EAAM,IAAI/E,YAAY+B,EAAO,CAC3B8C,QAAAA,EACA5E,YAAY,SAKI,IAATyE,GACT9H,OAAOC,KAAK6H,GACT5H,SAAQ,SAAAiC,GACPnC,OAAOyI,eAAeN,EAAKhG,EAAK,CAC9BE,IAD8B,WAE5B,OAAOyF,EAAK3F,SAMlBqB,IACF2E,EAAI5E,iBAECL,qCACHlD,OAAOyI,eAAeN,EAAK,mBAAoB,CAC7C9F,IAAK,WAAA,OAAM,MAKb6F,GACFrK,EAAQmB,cAAcmJ,GAGpBA,EAAI3E,uBAA2C,IAAhBuE,GACjCA,EAAYxE,iBAGP4E,ICrTLO,KAAO,QACPC,QAAU,QACVC,SAAW,WACXC,UAAS,IAAOD,SAChBE,aAAe,YAEfC,iBAAmB,yBAEnBC,YAAW,QAAWH,UACtBI,aAAY,SAAYJ,UACxBK,qBAAoB,QAAWL,UAAYC,aAE3CK,gBAAkB,QAClBC,eAAiB,OACjBC,eAAiB,OAQjBC,MAAAA,WACJ,SAAAA,EAAYzL,GACV+F,KAAK2F,SAAW1L,EAEZ+F,KAAK2F,UACP/G,KAAKC,QAAQ5E,EAAS+K,SAAUhF,iCAYpC4F,MAAA,SAAM3L,GACJ,IAAI4L,EAAc7F,KAAK2F,SACnB1L,IACF4L,EAAc7F,KAAK8F,gBAAgB7L,IAGrC,IAAM8L,EAAc/F,KAAKgG,mBAAmBH,GAExB,OAAhBE,GAAwBA,EAAYnG,kBAIxCI,KAAKiG,eAAeJ,MAGtBK,QAAA,WACEtH,KAAKI,WAAWgB,KAAK2F,SAAUX,UAC/BhF,KAAK2F,SAAW,QAKlBG,gBAAA,SAAgB7L,GACd,OAAOO,uBAAuBP,IAAYA,EAAQkM,QAAR,IAAoBZ,oBAGhES,mBAAA,SAAmB/L,GACjB,OAAOwH,aAAawC,QAAQhK,EAASmL,gBAGvCa,eAAA,SAAehM,GAAS,IAAAmM,EAAApG,KAGtB,GAFA/F,EAAQoM,UAAUC,OAAOb,gBAEpBxL,EAAQoM,UAAUE,SAASf,gBAAhC,CAKA,IAAM3K,EAAqBJ,iCAAiCR,GAE5DwH,aACGgC,IAAIxJ,EAASd,gBAAgB,WAAA,OAAMiN,EAAKI,gBAAgBvM,MAC3DuB,qBAAqBvB,EAASY,QAR5BmF,KAAKwG,gBAAgBvM,MAWzBuM,gBAAA,SAAgBvM,GACVA,EAAQgD,YACVhD,EAAQgD,WAAWwJ,YAAYxM,GAGjCwH,aAAawC,QAAQhK,EAASoL,iBAKzBqB,gBAAP,SAAuBxK,GACrB,OAAO8D,KAAK2G,MAAK,WACf,IAAInI,EAAOI,KAAKG,QAAQiB,KAAMgF,UAEzBxG,IACHA,EAAO,IAAIkH,EAAM1F,OAGJ,UAAX9D,GACFsC,EAAKtC,GAAQ8D,YAKZ4G,cAAP,SAAqBC,GACnB,OAAO,SAAUtF,GACXA,GACFA,EAAM5B,iBAGRkH,EAAcjB,MAAM5F,UAIjB8G,YAAP,SAAmB7M,GACjB,OAAO2E,KAAKG,QAAQ9E,EAAS+K,8DArF7B,OAAOD,cAZLW,GA0GNjE,aACG+B,GAAG1J,SAAUwL,qBAAsBH,iBAAkBO,MAAMkB,cAAc,IAAIlB,QAEhF,IAAMnF,IAAIxC,YAUV,GAAIwC,IAAG,CACL,IAAMwG,mBAAqBxG,IAAEc,GAAGyD,MAChCvE,IAAEc,GAAGyD,MAAQY,MAAMgB,gBACnBnG,IAAEc,GAAGyD,MAAMkC,YAActB,MACzBnF,IAAEc,GAAGyD,MAAMmC,WAAa,WAEtB,OADA1G,IAAEc,GAAGyD,MAAQiC,mBACNrB,MAAMgB,iBC3JjB,IAAMQ,UAAY,EAEZC,eAAiB,CACrB7G,QADqB,SACbrG,EAASC,GACf,OAAOD,EAAQqG,QAAQpG,IAGzB+E,KALqB,SAKhB/E,EAAUD,GAAoC,IAAAmN,EACjD,YADiD,IAApCnN,IAAAA,EAAUH,SAASyD,kBACzB6J,EAAA,IAAGC,OAAHzF,MAAAwF,EAAaE,KAAO/N,KAAKU,EAASC,KAG3CmF,QATqB,SASbnF,EAAUD,GAChB,YADoD,IAApCA,IAAAA,EAAUH,SAASyD,iBAC5B8B,QAAQ9F,KAAKU,EAASC,IAG/BqN,SAbqB,SAaZtN,EAASC,GAAU,IAAAsN,EACpBD,GAAWC,EAAA,IAAGH,OAAHzF,MAAA4F,EAAavN,EAAQsN,UAEtC,OAAOA,EAASE,QAAO,SAAAC,GAAK,OAAIA,EAAMpH,QAAQpG,OAGhDyN,QAnBqB,SAmBb1N,EAASC,GAKf,IAJA,IAAMyN,EAAU,GAEZC,EAAW3N,EAAQgD,WAEhB2K,GAAYA,EAASrM,WAAasM,KAAKC,cAAgBF,EAASrM,WAAa2L,WAC9ElH,KAAKM,QAAQsH,EAAU1N,IACzByN,EAAQI,KAAKH,GAGfA,EAAWA,EAAS3K,WAGtB,OAAO0K,GAGTK,KAnCqB,SAmChB/N,EAASC,GAGZ,IAFA,IAAI+N,EAAWhO,EAAQiO,uBAEhBD,GAAU,CACf,GAAIA,EAAS3H,QAAQpG,GACnB,MAAO,CAAC+N,GAGVA,EAAWA,EAASC,uBAGtB,MAAO,IAGTC,KAjDqB,SAiDhBlO,EAASC,GAGZ,IAFA,IAAIiO,EAAOlO,EAAQmO,mBAEZD,GAAM,CACX,GAAInI,KAAKM,QAAQ6H,EAAMjO,GACrB,MAAO,CAACiO,GAGVA,EAAOA,EAAKC,mBAGd,MAAO,KC3DLtD,OAAO,SACPC,UAAU,QACVC,WAAW,YACXC,YAAS,IAAOD,WAChBE,eAAe,YAEfmD,kBAAoB,SACpBC,oBAAsB,WACtBC,iBAAmB,QAEnBC,4BAA8B,0BAC9BC,qBAAuB,0BACvBC,eAAiB,6BACjBC,gBAAkB,UAClBC,gBAAkB,OAElBtD,uBAAoB,QAAWL,YAAYC,eAC3C2D,qBAAoB,QAAW5D,YAAYC,eAC3C4D,oBAAmB,OAAU7D,YAAYC,eAQzC6D,OAAAA,WACJ,SAAAA,EAAY9O,GACV+F,KAAK2F,SAAW1L,EAChB2E,KAAKC,QAAQ5E,EAAS+K,WAAUhF,iCAWlCgJ,OAAA,WACE,IAAIC,GAAqB,EACrBC,GAAiB,EAEfrD,EAAc7F,KAAK2F,SAASQ,QAAQsC,sBAE1C,GAAI5C,EAAa,CACf,IAAMsD,EAAQhC,eAAe9H,QAAQqJ,eAAgB1I,KAAK2F,UAE1D,GAAIwD,GAAwB,UAAfA,EAAMxH,KAAkB,CACnC,GAAIwH,EAAMC,SACRpJ,KAAK2F,SAASU,UAAUE,SAAS8B,mBACjCY,GAAqB,MAChB,CACL,IAAMI,EAAgBlC,eAAe9H,QAAQsJ,gBAAiB9C,GAE1DwD,GACFA,EAAchD,UAAUC,OAAO+B,mBAInC,GAAIY,EAAoB,CACtB,GAAIE,EAAMjL,aAAa,aACrB2H,EAAY3H,aAAa,aACzBiL,EAAM9C,UAAUE,SAAS+B,sBACzBzC,EAAYQ,UAAUE,SAAS+B,qBAC/B,OAGFa,EAAMC,SAAWpJ,KAAK2F,SAASU,UAAUE,SAAS8B,mBAClD5G,aAAawC,QAAQkF,EAAO,UAG9BA,EAAMG,QACNJ,GAAiB,GAIjBA,GACFlJ,KAAK2F,SAAS4D,aAAa,gBACxBvJ,KAAK2F,SAASU,UAAUE,SAAS8B,oBAGlCY,GACFjJ,KAAK2F,SAASU,UAAU2C,OAAOX,sBAInCnC,QAAA,WACEtH,KAAKI,WAAWgB,KAAK2F,SAAUX,YAC/BhF,KAAK2F,SAAW,QAKXe,gBAAP,SAAuBxK,GACrB,OAAO8D,KAAK2G,MAAK,WACf,IAAInI,EAAOI,KAAKG,QAAQiB,KAAMgF,YAEzBxG,IACHA,EAAO,IAAIuK,EAAO/I,OAGL,WAAX9D,GACFsC,EAAKtC,WAKJ4K,YAAP,SAAmB7M,GACjB,OAAO2E,KAAKG,QAAQ9E,EAAS+K,gEA3E7B,OAAOD,gBATLgE,GA8FNtH,aAAa+B,GAAG1J,SAAUwL,uBAAsBkD,6BAA6B,SAAAjH,GAC3EA,EAAM5B,iBAEN,IAAM6J,EAASjI,EAAMQ,OAAOoE,QAAQyC,iBAEhCpK,EAAOI,KAAKG,QAAQyK,EAAQxE,YAC3BxG,IACHA,EAAO,IAAIuK,OAAOS,IAGpBhL,EAAKwK,YAGPvH,aAAa+B,GAAG1J,SAAU+O,qBAAsBL,6BAA6B,SAAAjH,GAC3E,IAAMiI,EAASjI,EAAMQ,OAAOoE,QAAQyC,iBAEhCY,GACFA,EAAOnD,UAAUoD,IAAIlB,qBAIzB9G,aAAa+B,GAAG1J,SAAUgP,oBAAqBN,6BAA6B,SAAAjH,GAC1E,IAAMiI,EAASjI,EAAMQ,OAAOoE,QAAQyC,iBAEhCY,GACFA,EAAOnD,UAAUC,OAAOiC,qBAI5B,IAAMhI,IAAIxC,YASV,GAAIwC,IAAG,CACL,IAAMwG,qBAAqBxG,IAAEc,GAAGyD,QAChCvE,IAAEc,GAAGyD,QAAQiE,OAAOrC,gBACpBnG,IAAEc,GAAGyD,QAAMkC,YAAc+B,OAEzBxI,IAAEc,GAAGyD,QAAMmC,WAAa,WAEtB,OADA1G,IAAEc,GAAGyD,QAAQiC,qBACNgC,OAAOrC,iBChLlB,SAASgD,cAAcC,GACrB,MAAY,SAARA,GAIQ,UAARA,IAIAA,IAAQC,OAAOD,GAAKrQ,WACfsQ,OAAOD,GAGJ,KAARA,GAAsB,SAARA,EACT,KAGFA,GAGT,SAASE,iBAAiBtL,GACxB,OAAOA,EAAI6B,QAAQ,UAAU,SAAA0J,GAAG,MAAA,IAAQA,EAAIrQ,iBAG9C,IAAMsQ,YAAc,CAClBC,iBADkB,SACD/P,EAASsE,EAAK9B,GAC7BxC,EAAQsP,aAAR,QAA6BM,iBAAiBtL,GAAQ9B,IAGxDwN,oBALkB,SAKEhQ,EAASsE,GAC3BtE,EAAQoG,gBAAR,QAAgCwJ,iBAAiBtL,KAGnD2L,kBATkB,SASAjQ,GAChB,IAAKA,EACH,MAAO,GAGT,IAAMkQ,EAAUC,eAAA,GACXnQ,EAAQoQ,SAOb,OAJAjO,OAAOC,KAAK8N,GAAY7N,SAAQ,SAAAiC,GAC9B4L,EAAW5L,GAAOmL,cAAcS,EAAW5L,OAGtC4L,GAGTG,iBAzBkB,SAyBDrQ,EAASsE,GACxB,OAAOmL,cAAczP,EAAQE,aAAR,QAA6B0P,iBAAiBtL,MAGrEgM,OA7BkB,SA6BXtQ,GACL,IAAMuQ,EAAOvQ,EAAQwQ,wBAErB,MAAO,CACLC,IAAKF,EAAKE,IAAM5Q,SAASmE,KAAK0M,UAC9BC,KAAMJ,EAAKI,KAAO9Q,SAASmE,KAAK4M,aAIpCC,SAtCkB,SAsCT7Q,GACP,MAAO,CACLyQ,IAAKzQ,EAAQ8Q,UACbH,KAAM3Q,EAAQ+Q,aAIlBC,YA7CkB,SA6CNhR,EAASiR,GACdjR,IAIDA,EAAQoM,UAAUE,SAAS2E,GAC7BjR,EAAQoM,UAAUC,OAAO4E,GAEzBjR,EAAQoM,UAAUoD,IAAIyB,MCvDtBpG,OAAO,WACPC,UAAU,QACVC,WAAW,cACXC,YAAS,IAAOD,WAChBE,eAAe,YAEfiG,eAAiB,YACjBC,gBAAkB,aAClBC,uBAAyB,IACzBC,gBAAkB,GAElBC,QAAU,CACdC,SAAU,IACVC,UAAU,EACVC,OAAO,EACPC,MAAO,QACPC,MAAM,EACNC,OAAO,GAGHC,YAAc,CAClBN,SAAU,mBACVC,SAAU,UACVC,MAAO,mBACPC,MAAO,mBACPC,KAAM,UACNC,MAAO,WAGHE,eAAiB,OACjBC,eAAiB,OACjBC,eAAiB,OACjBC,gBAAkB,QAElBC,YAAW,QAAWlH,YACtBmH,WAAU,OAAUnH,YACpBoH,cAAa,UAAapH,YAC1BqH,iBAAgB,aAAgBrH,YAChCsH,iBAAgB,aAAgBtH,YAChCuH,iBAAgB,aAAgBvH,YAChCwH,gBAAe,YAAexH,YAC9ByH,eAAc,WAAczH,YAC5B0H,kBAAiB,cAAiB1H,YAClC2H,gBAAe,YAAe3H,YAC9B4H,iBAAgB,YAAe5H,YAC/B6H,oBAAmB,OAAU7H,YAAYC,eACzCI,uBAAoB,QAAWL,YAAYC,eAE3C6H,oBAAsB,WACtB1E,oBAAoB,SACpB2E,iBAAmB,QACnBC,iBAAmB,sBACnBC,gBAAkB,qBAClBC,gBAAkB,qBAClBC,gBAAkB,qBAClBC,yBAA2B,gBAE3B1E,kBAAkB,UAClB2E,qBAAuB,wBACvBC,cAAgB,iBAChBC,kBAAoB,qBACpBC,mBAAqB,2CACrBC,oBAAsB,uBACtBC,oBAAsB,gCACtBC,mBAAqB,yBAErBC,YAAc,CAClBC,MAAO,QACPC,IAAK,OAQDC,SAAAA,WACJ,SAAAA,EAAY/T,EAASiC,GACnB8D,KAAKiO,OAAS,KACdjO,KAAKkO,UAAY,KACjBlO,KAAKmO,eAAiB,KACtBnO,KAAKoO,WAAY,EACjBpO,KAAKqO,YAAa,EAClBrO,KAAKsO,aAAe,KACpBtO,KAAKuO,YAAc,EACnBvO,KAAKwO,YAAc,EAEnBxO,KAAKyO,QAAUzO,KAAK0O,WAAWxS,GAC/B8D,KAAK2F,SAAW1L,EAChB+F,KAAK2O,mBAAqBxH,eAAe9H,QAAQqO,oBAAqB1N,KAAK2F,UAC3E3F,KAAK4O,gBAAkB,iBAAkB9U,SAASyD,iBAAmBsR,UAAUC,eAAiB,EAChG9O,KAAK+O,cAAgB7O,QAAQvF,OAAOqU,cAEpChP,KAAKiP,qBACLrQ,KAAKC,QAAQ5E,EAAS+K,WAAUhF,iCAelCmI,KAAA,WACOnI,KAAKqO,YACRrO,KAAKkP,OAAOnD,mBAIhBoD,gBAAA,YAGOrV,SAASsV,QAAUrS,UAAUiD,KAAK2F,WACrC3F,KAAKmI,UAITH,KAAA,WACOhI,KAAKqO,YACRrO,KAAKkP,OAAOlD,mBAIhBL,MAAA,SAAMpK,GACCA,IACHvB,KAAKoO,WAAY,GAGfjH,eAAe9H,QAAQoO,mBAAoBzN,KAAK2F,YAClDxK,qBAAqB6E,KAAK2F,UAC1B3F,KAAKqP,OAAM,IAGbC,cAActP,KAAKkO,WACnBlO,KAAKkO,UAAY,QAGnBmB,MAAA,SAAM9N,GACCA,IACHvB,KAAKoO,WAAY,GAGfpO,KAAKkO,YACPoB,cAActP,KAAKkO,WACnBlO,KAAKkO,UAAY,MAGflO,KAAKyO,SAAWzO,KAAKyO,QAAQjD,WAAaxL,KAAKoO,YACjDpO,KAAKkO,UAAYqB,aACdzV,SAAS0V,gBAAkBxP,KAAKmP,gBAAkBnP,KAAKmI,MAAMsH,KAAKzP,MACnEA,KAAKyO,QAAQjD,cAKnBkE,GAAA,SAAGC,GAAO,IAAAvJ,EAAApG,KACRA,KAAKmO,eAAiBhH,eAAe9H,QAAQiO,qBAAsBtN,KAAK2F,UACxE,IAAMiK,EAAc5P,KAAK6P,cAAc7P,KAAKmO,gBAE5C,KAAIwB,EAAQ3P,KAAKiO,OAAOhM,OAAS,GAAK0N,EAAQ,GAI9C,GAAI3P,KAAKqO,WACP5M,aAAagC,IAAIzD,KAAK2F,SAAUyG,YAAY,WAAA,OAAMhG,EAAKsJ,GAAGC,UAD5D,CAKA,GAAIC,IAAgBD,EAGlB,OAFA3P,KAAK2L,aACL3L,KAAKqP,QAIP,IAAMS,EAAYH,EAAQC,EACxB7D,eACAC,eAEFhM,KAAKkP,OAAOY,EAAW9P,KAAKiO,OAAO0B,QAGrCzJ,QAAA,WACEzE,aAAaC,IAAI1B,KAAK2F,SAAUV,aAChCrG,KAAKI,WAAWgB,KAAK2F,SAAUX,YAE/BhF,KAAKiO,OAAS,KACdjO,KAAKyO,QAAU,KACfzO,KAAK2F,SAAW,KAChB3F,KAAKkO,UAAY,KACjBlO,KAAKoO,UAAY,KACjBpO,KAAKqO,WAAa,KAClBrO,KAAKmO,eAAiB,KACtBnO,KAAK2O,mBAAqB,QAK5BD,WAAA,SAAWxS,GAMT,OALAA,EAAMkO,eAAAA,eAAA,GACDmB,SACArP,GAELF,gBAAgB8I,OAAM5I,EAAQ4P,aACvB5P,KAGT6T,aAAA,WACE,IAAMC,EAAYpW,KAAKqW,IAAIjQ,KAAKwO,aAEhC,KAAIwB,GAAa1E,iBAAjB,CAIA,IAAMwE,EAAYE,EAAYhQ,KAAKwO,YAEnCxO,KAAKwO,YAAc,EAGfsB,EAAY,GACd9P,KAAKgI,OAIH8H,EAAY,GACd9P,KAAKmI,WAIT8G,mBAAA,WAAqB,IAAAiB,EAAAlQ,KACfA,KAAKyO,QAAQhD,UACfhK,aACG+B,GAAGxD,KAAK2F,SAAU0G,eAAe,SAAA9K,GAAK,OAAI2O,EAAKC,SAAS5O,MAGlC,UAAvBvB,KAAKyO,QAAQ9C,QACflK,aACG+B,GAAGxD,KAAK2F,SAAU2G,kBAAkB,SAAA/K,GAAK,OAAI2O,EAAKvE,MAAMpK,MAC3DE,aACG+B,GAAGxD,KAAK2F,SAAU4G,kBAAkB,SAAAhL,GAAK,OAAI2O,EAAKb,MAAM9N,OAGzDvB,KAAKyO,QAAQ5C,OAAS7L,KAAK4O,iBAC7B5O,KAAKoQ,6BAITA,wBAAA,WAA0B,IAAAC,EAAArQ,KAClBsQ,EAAQ,SAAA/O,GACR8O,EAAKtB,eAAiBlB,YAAYtM,EAAMgP,YAAYzT,eACtDuT,EAAK9B,YAAchN,EAAMiP,QACfH,EAAKtB,gBACfsB,EAAK9B,YAAchN,EAAMkP,QAAQ,GAAGD,UAalCE,EAAM,SAAAnP,GACN8O,EAAKtB,eAAiBlB,YAAYtM,EAAMgP,YAAYzT,iBACtDuT,EAAK7B,YAAcjN,EAAMiP,QAAUH,EAAK9B,aAG1C8B,EAAKN,eACsB,UAAvBM,EAAK5B,QAAQ9C,QASf0E,EAAK1E,QACD0E,EAAK/B,cACPqC,aAAaN,EAAK/B,cAGpB+B,EAAK/B,aAAevS,YAAW,SAAAwF,GAAK,OAAI8O,EAAKhB,MAAM9N,KAAQ8J,uBAAyBgF,EAAK5B,QAAQjD,YAIrGrE,eAAelI,KAAKuO,kBAAmBxN,KAAK2F,UAAUrJ,SAAQ,SAAAsU,GAC5DnP,aAAa+B,GAAGoN,EAAS/D,kBAAkB,SAAAtN,GAAC,OAAIA,EAAEI,uBAGhDK,KAAK+O,eACPtN,aAAa+B,GAAGxD,KAAK2F,SAAUgH,mBAAmB,SAAApL,GAAK,OAAI+O,EAAM/O,MACjEE,aAAa+B,GAAGxD,KAAK2F,SAAUiH,iBAAiB,SAAArL,GAAK,OAAImP,EAAInP,MAE7DvB,KAAK2F,SAASU,UAAUoD,IAAI4D,4BAE5B5L,aAAa+B,GAAGxD,KAAK2F,SAAU6G,kBAAkB,SAAAjL,GAAK,OAAI+O,EAAM/O,MAChEE,aAAa+B,GAAGxD,KAAK2F,SAAU8G,iBAAiB,SAAAlL,GAAK,OA5C1C,SAAAA,GAEPA,EAAMkP,SAAWlP,EAAMkP,QAAQxO,OAAS,EAC1CoO,EAAK7B,YAAc,EAEnB6B,EAAK7B,YAAcjN,EAAMkP,QAAQ,GAAGD,QAAUH,EAAK9B,YAuCIsC,CAAKtP,MAC9DE,aAAa+B,GAAGxD,KAAK2F,SAAU+G,gBAAgB,SAAAnL,GAAK,OAAImP,EAAInP,UAIhE4O,SAAA,SAAS5O,GACP,IAAI,kBAAkB3E,KAAK2E,EAAMQ,OAAO+O,SAIxC,OAAQvP,EAAMhD,KACZ,KAAK4M,eACH5J,EAAM5B,iBACNK,KAAKgI,OACL,MACF,KAAKoD,gBACH7J,EAAM5B,iBACNK,KAAKmI,WAMX0H,cAAA,SAAc5V,GAKZ,OAJA+F,KAAKiO,OAAShU,GAAWA,EAAQgD,WAC/BkK,eAAelI,KAAKsO,cAAetT,EAAQgD,YAC3C,GAEK+C,KAAKiO,OAAOnL,QAAQ7I,MAG7B8W,oBAAA,SAAoBjB,EAAWzG,GAC7B,IAAM2H,EAAkBlB,IAAc/D,eAChCkF,EAAkBnB,IAAc9D,eAChC4D,EAAc5P,KAAK6P,cAAcxG,GACjC6H,EAAgBlR,KAAKiO,OAAOhM,OAAS,EAI3C,IAHuBgP,GAAmC,IAAhBrB,GACjBoB,GAAmBpB,IAAgBsB,KAEtClR,KAAKyO,QAAQ7C,KACjC,OAAOvC,EAGT,IACM8H,GAAavB,GADLE,IAAc9D,gBAAkB,EAAI,IACRhM,KAAKiO,OAAOhM,OAEtD,OAAsB,IAAfkP,EACLnR,KAAKiO,OAAOjO,KAAKiO,OAAOhM,OAAS,GACjCjC,KAAKiO,OAAOkD,MAGhBC,mBAAA,SAAmBC,EAAeC,GAChC,IAAMC,EAAcvR,KAAK6P,cAAcwB,GACjCG,EAAYxR,KAAK6P,cAAc1I,eAAe9H,QAAQiO,qBAAsBtN,KAAK2F,WAEvF,OAAOlE,aAAawC,QAAQjE,KAAK2F,SAAUwG,YAAa,CACtDkF,cAAAA,EACAvB,UAAWwB,EACXG,KAAMD,EACN9B,GAAI6B,OAIRG,2BAAA,SAA2BzX,GACzB,GAAI+F,KAAK2O,mBAAoB,CAE3B,IADA,IAAMgD,EAAaxK,eAAelI,KAAK0J,kBAAiB3I,KAAK2O,oBACpD3M,EAAI,EAAGA,EAAI2P,EAAW1P,OAAQD,IACrC2P,EAAW3P,GAAGqE,UAAUC,OAAO+B,qBAGjC,IAAMuJ,EAAgB5R,KAAK2O,mBAAmBpH,SAC5CvH,KAAK6P,cAAc5V,IAGjB2X,GACFA,EAAcvL,UAAUoD,IAAIpB,yBAKlC6G,OAAA,SAAOY,EAAW7V,GAAS,IASrB4X,EACAC,EACAR,EAXqBS,EAAA/R,KACnBqJ,EAAgBlC,eAAe9H,QAAQiO,qBAAsBtN,KAAK2F,UAClEqM,EAAqBhS,KAAK6P,cAAcxG,GACxC4I,EAAchY,GAAYoP,GAC9BrJ,KAAK+Q,oBAAoBjB,EAAWzG,GAEhC6I,EAAmBlS,KAAK6P,cAAcoC,GACtCE,EAAYjS,QAAQF,KAAKkO,WAgB/B,GAVI4B,IAAc/D,gBAChB8F,EAAuB3E,gBACvB4E,EAAiB3E,gBACjBmE,EAAqBrF,iBAErB4F,EAAuB5E,iBACvB6E,EAAiB1E,gBACjBkE,EAAqBpF,iBAGnB+F,GAAeA,EAAY5L,UAAUE,SAAS8B,qBAChDrI,KAAKqO,YAAa,OAKpB,IADmBrO,KAAKoR,mBAAmBa,EAAaX,GACzC1R,kBAIVyJ,GAAkB4I,EAAvB,CAaA,GARAjS,KAAKqO,YAAa,EAEd8D,GACFnS,KAAK2L,QAGP3L,KAAK0R,2BAA2BO,GAE5BjS,KAAK2F,SAASU,UAAUE,SAASyG,kBAAmB,CACtDiF,EAAY5L,UAAUoD,IAAIqI,GAE1BjU,OAAOoU,GAEP5I,EAAchD,UAAUoD,IAAIoI,GAC5BI,EAAY5L,UAAUoD,IAAIoI,GAE1B,IAAMO,EAAsBC,SAASJ,EAAY9X,aAAa,iBAAkB,IAC5EiY,GACFpS,KAAKyO,QAAQ6D,gBAAkBtS,KAAKyO,QAAQ6D,iBAAmBtS,KAAKyO,QAAQjD,SAC5ExL,KAAKyO,QAAQjD,SAAW4G,GAExBpS,KAAKyO,QAAQjD,SAAWxL,KAAKyO,QAAQ6D,iBAAmBtS,KAAKyO,QAAQjD,SAGvE,IAAM3Q,EAAqBJ,iCAAiC4O,GAE5D5H,aACGgC,IAAI4F,EAAelQ,gBAAgB,WAClC8Y,EAAY5L,UAAUC,OAAOuL,EAAsBC,GACnDG,EAAY5L,UAAUoD,IAAIpB,qBAE1BgB,EAAchD,UAAUC,OAAO+B,oBAAmByJ,EAAgBD,GAElEE,EAAK1D,YAAa,EAElBtS,YAAW,WACT0F,aAAawC,QAAQ8N,EAAKpM,SAAUyG,WAAY,CAC9CiF,cAAeY,EACfnC,UAAWwB,EACXG,KAAMO,EACNtC,GAAIwC,MAEL,MAGP1W,qBAAqB6N,EAAexO,QAEpCwO,EAAchD,UAAUC,OAAO+B,qBAC/B4J,EAAY5L,UAAUoD,IAAIpB,qBAE1BrI,KAAKqO,YAAa,EAClB5M,aAAawC,QAAQjE,KAAK2F,SAAUyG,WAAY,CAC9CiF,cAAeY,EACfnC,UAAWwB,EACXG,KAAMO,EACNtC,GAAIwC,IAIJC,GACFnS,KAAKqP,YAMFkD,kBAAP,SAAyBtY,EAASiC,GAChC,IAAIsC,EAAOI,KAAKG,QAAQ9E,EAAS+K,YAC7ByJ,EAAOrE,eAAAA,eAAA,GACNmB,SACAxB,YAAYG,kBAAkBjQ,IAGb,iBAAXiC,IACTuS,EAAOrE,eAAAA,eAAA,GACFqE,GACAvS,IAIP,IAAMsW,EAA2B,iBAAXtW,EAAsBA,EAASuS,EAAQ/C,MAM7D,GAJKlN,IACHA,EAAO,IAAIwP,EAAS/T,EAASwU,IAGT,iBAAXvS,EACTsC,EAAKkR,GAAGxT,QACH,GAAsB,iBAAXsW,EAAqB,CACrC,QAA4B,IAAjBhU,EAAKgU,GACd,MAAM,IAAIC,UAAJ,oBAAkCD,EAAlC,KAGRhU,EAAKgU,UACI/D,EAAQjD,UAAYiD,EAAQiE,OACrClU,EAAKmN,QACLnN,EAAK6Q,YAIF3I,gBAAP,SAAuBxK,GACrB,OAAO8D,KAAK2G,MAAK,WACfqH,EAASuE,kBAAkBvS,KAAM9D,SAI9ByW,oBAAP,SAA2BpR,GACzB,IAAMQ,EAASvH,uBAAuBwF,MAEtC,GAAK+B,GAAWA,EAAOsE,UAAUE,SAASwG,qBAA1C,CAIA,IAAM7Q,EAAMkO,eAAAA,eAAA,GACPL,YAAYG,kBAAkBnI,IAC9BgI,YAAYG,kBAAkBlK,OAE7B4S,EAAa5S,KAAK7F,aAAa,iBAEjCyY,IACF1W,EAAOsP,UAAW,GAGpBwC,EAASuE,kBAAkBxQ,EAAQ7F,GAE/B0W,GACFhU,KAAKG,QAAQgD,EAAQiD,YAAU0K,GAAGkD,GAGpCrR,EAAM5B,qBAGDmH,YAAP,SAAmB7M,GACjB,OAAO2E,KAAKG,QAAQ9E,EAAS+K,gEAxc7B,OAAOD,0CAIP,OAAOwG,cA5BLyC,GA0eNvM,aACG+B,GAAG1J,SAAUwL,uBAAsBqI,oBAAqBK,SAAS2E,qBAEpElR,aAAa+B,GAAG7I,OAAQmS,qBAAqB,WAG3C,IAFA,IAAM+F,EAAY1L,eAAelI,KAAK2O,oBAE7B5L,EAAI,EAAGM,EAAMuQ,EAAU5Q,OAAQD,EAAIM,EAAKN,IAC/CgM,SAASuE,kBAAkBM,EAAU7Q,GAAIpD,KAAKG,QAAQ8T,EAAU7Q,GAAIgD,gBAIxE,IAAMzE,IAAIxC,YASV,GAAIwC,IAAG,CACL,IAAMwG,qBAAqBxG,IAAEc,GAAGyD,QAChCvE,IAAEc,GAAGyD,QAAQkJ,SAAStH,gBACtBnG,IAAEc,GAAGyD,QAAMkC,YAAcgH,SACzBzN,IAAEc,GAAGyD,QAAMmC,WAAa,WAEtB,OADA1G,IAAEc,GAAGyD,QAAQiC,qBACNiH,SAAStH,iBChlBpB,IAAM5B,OAAO,WACPC,UAAU,QACVC,WAAW,cACXC,YAAS,IAAOD,WAChBE,eAAe,YAEfqG,UAAU,CACdvC,QAAQ,EACR8J,OAAQ,IAGJhH,cAAc,CAClB9C,OAAQ,UACR8J,OAAQ,oBAGJC,WAAU,OAAU9N,YACpB+N,YAAW,QAAW/N,YACtBgO,WAAU,OAAUhO,YACpBiO,aAAY,SAAYjO,YACxBK,uBAAoB,QAAWL,YAAYC,eAE3CiO,gBAAkB,OAClBC,oBAAsB,WACtBC,sBAAwB,aACxBC,qBAAuB,YAEvBC,MAAQ,QACRC,OAAS,SAETC,iBAAmB,qBACnBhL,uBAAuB,2BAQvBiL,SAAAA,WACJ,SAAAA,EAAYzZ,EAASiC,GACnB8D,KAAK2T,kBAAmB,EACxB3T,KAAK2F,SAAW1L,EAChB+F,KAAKyO,QAAUzO,KAAK0O,WAAWxS,GAC/B8D,KAAK4T,cAAgBzM,eAAelI,KAC/BwJ,uBAAH,WAAkCxO,EAAQoE,GAA1C,MACGoK,uBADH,kBACyCxO,EAAQoE,GADjD,MAMF,IAFA,IAAMwV,EAAa1M,eAAelI,KAAKwJ,wBAE9BzG,EAAI,EAAGM,EAAMuR,EAAW5R,OAAQD,EAAIM,EAAKN,IAAK,CACrD,IAAM8R,EAAOD,EAAW7R,GAClB9H,EAAWI,uBAAuBwZ,GAClCC,EAAgB5M,eAAelI,KAAK/E,GACvCuN,QAAO,SAAAuM,GAAS,OAAIA,IAAc/Z,KAEpB,OAAbC,GAAqB6Z,EAAc9R,SACrCjC,KAAKiU,UAAY/Z,EACjB8F,KAAK4T,cAAc7L,KAAK+L,IAI5B9T,KAAKkU,QAAUlU,KAAKyO,QAAQqE,OAAS9S,KAAKmU,aAAe,KAEpDnU,KAAKyO,QAAQqE,QAChB9S,KAAKoU,0BAA0BpU,KAAK2F,SAAU3F,KAAK4T,eAGjD5T,KAAKyO,QAAQzF,QACfhJ,KAAKgJ,SAGPpK,KAAKC,QAAQ5E,EAAS+K,WAAUhF,iCAelCgJ,OAAA,WACMhJ,KAAK2F,SAASU,UAAUE,SAAS4M,iBACnCnT,KAAKqU,OAELrU,KAAKsU,UAITA,KAAA,WAAO,IAAAlO,EAAApG,KACL,IAAIA,KAAK2T,mBACP3T,KAAK2F,SAASU,UAAUE,SAAS4M,iBADnC,CAKA,IAAIoB,EACAC,EAEAxU,KAAKkU,SAUgB,KATvBK,EAAUpN,eAAelI,KAAKwU,iBAAkBzT,KAAKkU,SAClDzM,QAAO,SAAAqM,GACN,MAAmC,iBAAxB1N,EAAKqI,QAAQqE,OACfgB,EAAK3Z,aAAa,iBAAmBiM,EAAKqI,QAAQqE,OAGpDgB,EAAKzN,UAAUE,SAAS6M,yBAGvBnR,SACVsS,EAAU,MAId,IAAME,EAAYtN,eAAe9H,QAAQW,KAAKiU,WAC9C,GAAIM,EAAS,CACX,IAAMG,EAAiBH,EAAQ9M,QAAO,SAAAqM,GAAI,OAAIW,IAAcX,KAG5D,IAFAU,EAAcE,EAAe,GAAK9V,KAAKG,QAAQ2V,EAAe,GAAI1P,YAAY,OAE3DwP,EAAYb,iBAC7B,OAKJ,IADmBlS,aAAawC,QAAQjE,KAAK2F,SAAUoN,YACxCnT,iBAAf,CAII2U,GACFA,EAAQjY,SAAQ,SAAAqY,GACVF,IAAcE,GAChBjB,EAASkB,kBAAkBD,EAAY,QAGpCH,GACH5V,KAAKC,QAAQ8V,EAAY3P,WAAU,SAKzC,IAAM6P,EAAY7U,KAAK8U,gBAEvB9U,KAAK2F,SAASU,UAAUC,OAAO8M,qBAC/BpT,KAAK2F,SAASU,UAAUoD,IAAI4J,uBAE5BrT,KAAK2F,SAAS3I,MAAM6X,GAAa,EAE7B7U,KAAK4T,cAAc3R,QACrBjC,KAAK4T,cAActX,SAAQ,SAAArC,GACzBA,EAAQoM,UAAUC,OAAOgN,sBACzBrZ,EAAQsP,aAAa,iBAAiB,MAI1CvJ,KAAK+U,kBAAiB,GAEtB,IAYMC,EAAU,UADaH,EAAU,GAAG/X,cAAgB+X,EAAU9Q,MAAM,IAEpElJ,EAAqBJ,iCAAiCuF,KAAK2F,UAEjElE,aAAagC,IAAIzD,KAAK2F,SAAUxM,gBAff,WACfiN,EAAKT,SAASU,UAAUC,OAAO+M,uBAC/BjN,EAAKT,SAASU,UAAUoD,IAAI2J,oBAAqBD,iBAEjD/M,EAAKT,SAAS3I,MAAM6X,GAAa,GAEjCzO,EAAK2O,kBAAiB,GAEtBtT,aAAawC,QAAQmC,EAAKT,SAAUqN,gBAStCxX,qBAAqBwE,KAAK2F,SAAU9K,GACpCmF,KAAK2F,SAAS3I,MAAM6X,GAAgB7U,KAAK2F,SAASqP,GAAlD,UAGFX,KAAA,WAAO,IAAAnE,EAAAlQ,KACL,IAAIA,KAAK2T,kBACN3T,KAAK2F,SAASU,UAAUE,SAAS4M,mBAIjB1R,aAAawC,QAAQjE,KAAK2F,SAAUsN,YACxCrT,iBAAf,CAIA,IAAMiV,EAAY7U,KAAK8U,gBAEvB9U,KAAK2F,SAAS3I,MAAM6X,GAAgB7U,KAAK2F,SAAS8E,wBAAwBoK,GAA1E,KAEAhX,OAAOmC,KAAK2F,UAEZ3F,KAAK2F,SAASU,UAAUoD,IAAI4J,uBAC5BrT,KAAK2F,SAASU,UAAUC,OAAO8M,oBAAqBD,iBAEpD,IAAM8B,EAAqBjV,KAAK4T,cAAc3R,OAC9C,GAAIgT,EAAqB,EACvB,IAAK,IAAIjT,EAAI,EAAGA,EAAIiT,EAAoBjT,IAAK,CAC3C,IAAMiC,EAAUjE,KAAK4T,cAAc5R,GAC7B8R,EAAOtZ,uBAAuByJ,GAEhC6P,IAASA,EAAKzN,UAAUE,SAAS4M,mBACnClP,EAAQoC,UAAUoD,IAAI6J,sBACtBrP,EAAQsF,aAAa,iBAAiB,IAK5CvJ,KAAK+U,kBAAiB,GAStB/U,KAAK2F,SAAS3I,MAAM6X,GAAa,GACjC,IAAMha,EAAqBJ,iCAAiCuF,KAAK2F,UAEjElE,aAAagC,IAAIzD,KAAK2F,SAAUxM,gBAVf,WACf+W,EAAK6E,kBAAiB,GACtB7E,EAAKvK,SAASU,UAAUC,OAAO+M,uBAC/BnD,EAAKvK,SAASU,UAAUoD,IAAI2J,qBAC5B3R,aAAawC,QAAQiM,EAAKvK,SAAUuN,iBAOtC1X,qBAAqBwE,KAAK2F,SAAU9K,OAGtCka,iBAAA,SAAiBG,GACflV,KAAK2T,iBAAmBuB,KAG1BhP,QAAA,WACEtH,KAAKI,WAAWgB,KAAK2F,SAAUX,YAE/BhF,KAAKyO,QAAU,KACfzO,KAAKkU,QAAU,KACflU,KAAK2F,SAAW,KAChB3F,KAAK4T,cAAgB,KACrB5T,KAAK2T,iBAAmB,QAK1BjF,WAAA,SAAWxS,GAOT,OANAA,EAAMkO,eAAAA,eAAA,GACDmB,WACArP,IAEE8M,OAAS9I,QAAQhE,EAAO8M,QAC/BhN,gBAAgB8I,OAAM5I,EAAQ4P,eACvB5P,KAGT4Y,cAAA,WAEE,OADiB9U,KAAK2F,SAASU,UAAUE,SAASgN,OAChCA,MAAQC,UAG5BW,WAAA,WAAa,IAAA9D,EAAArQ,KACL8S,EAAW9S,KAAKyO,QAAhBqE,OAEFxX,UAAUwX,QAEiB,IAAlBA,EAAOqC,aAA+C,IAAdrC,EAAO,KACxDA,EAASA,EAAO,IAGlBA,EAAS3L,eAAe9H,QAAQyT,GAGlC,IAAM5Y,EAAcuO,uBAAN,iBAA2CqK,EAA3C,KAYd,OAVA3L,eAAelI,KAAK/E,EAAU4Y,GAC3BxW,SAAQ,SAAArC,GACP,IAAMmb,EAAW5a,uBAAuBP,GAExCoW,EAAK+D,0BACHgB,EACA,CAACnb,OAIA6Y,KAGTsB,0BAAA,SAA0Bna,EAASob,GACjC,GAAIpb,EAAS,CACX,IAAMqb,EAASrb,EAAQoM,UAAUE,SAAS4M,iBAEtCkC,EAAapT,QACfoT,EAAa/Y,SAAQ,SAAAwX,GACfwB,EACFxB,EAAKzN,UAAUC,OAAOgN,sBAEtBQ,EAAKzN,UAAUoD,IAAI6J,sBAGrBQ,EAAKvK,aAAa,gBAAiB+L,UAQpCV,kBAAP,SAAyB3a,EAASiC,GAChC,IAAIsC,EAAOI,KAAKG,QAAQ9E,EAAS+K,YAC3ByJ,EAAOrE,eAAAA,eAAAA,eAAA,GACRmB,WACAxB,YAAYG,kBAAkBjQ,IACZ,iBAAXiC,GAAuBA,EAASA,EAAS,IAWrD,IARKsC,GAAQiQ,EAAQzF,QAA4B,iBAAX9M,GAAuB,YAAYU,KAAKV,KAC5EuS,EAAQzF,QAAS,GAGdxK,IACHA,EAAO,IAAIkV,EAASzZ,EAASwU,IAGT,iBAAXvS,EAAqB,CAC9B,QAA4B,IAAjBsC,EAAKtC,GACd,MAAM,IAAIuW,UAAJ,oBAAkCvW,EAAlC,KAGRsC,EAAKtC,SAIFwK,gBAAP,SAAuBxK,GACrB,OAAO8D,KAAK2G,MAAK,WACf+M,EAASkB,kBAAkB5U,KAAM9D,SAI9B4K,YAAP,SAAmB7M,GACjB,OAAO2E,KAAKG,QAAQ9E,EAAS+K,gEAxQ7B,OAAOD,0CAIP,OAAOwG,gBA5CLmI,GA0TNjS,aAAa+B,GAAG1J,SAAUwL,uBAAsBmD,wBAAsB,SAAUlH,GAEjD,MAAzBA,EAAMQ,OAAO+O,SACfvP,EAAM5B,iBAGR,IAAM4V,EAAcxL,YAAYG,kBAAkBlK,MAC5C9F,EAAWI,uBAAuB0F,MACfmH,eAAelI,KAAK/E,GAE5BoC,SAAQ,SAAArC,GACvB,IACIiC,EADEsC,EAAOI,KAAKG,QAAQ9E,EAAS+K,YAE/BxG,GAEmB,OAAjBA,EAAK0V,SAAkD,iBAAvBqB,EAAYzC,SAC9CtU,EAAKiQ,QAAQqE,OAASyC,EAAYzC,OAClCtU,EAAK0V,QAAU1V,EAAK2V,cAGtBjY,EAAS,UAETA,EAASqZ,EAGX7B,SAASkB,kBAAkB3a,EAASiC,SAIxC,IAAMqE,IAAIxC,YASV,GAAIwC,IAAG,CACL,IAAMwG,qBAAqBxG,IAAEc,GAAGyD,QAChCvE,IAAEc,GAAGyD,QAAQ4O,SAAShN,gBACtBnG,IAAEc,GAAGyD,QAAMkC,YAAc0M,SACzBnT,IAAEc,GAAGyD,QAAMmC,WAAa,WAEtB,OADA1G,IAAEc,GAAGyD,QAAQiC,qBACN2M,SAAShN,iBC/YpB,IAAM5B,OAAO,WACPC,UAAU,QACVC,WAAW,cACXC,YAAS,IAAOD,WAChBE,eAAe,YAEfsQ,WAAa,SACbC,UAAY,QACZC,QAAU,MACVC,aAAe,UACfC,eAAiB,YACjBC,mBAAqB,EAErBC,eAAiB,IAAInZ,OAAUgZ,aAAd,IAA8BC,eAA9B,IAAgDJ,YAEjEvC,aAAU,OAAUhO,YACpBiO,eAAY,SAAYjO,YACxB8N,aAAU,OAAU9N,YACpB+N,cAAW,QAAW/N,YACtB8Q,YAAW,QAAW9Q,YACtBK,uBAAoB,QAAWL,YAAYC,eAC3C8Q,uBAAsB,UAAa/Q,YAAYC,eAC/C+Q,qBAAoB,QAAWhR,YAAYC,eAE3CoD,sBAAsB,WACtB6K,kBAAkB,OAClB+C,kBAAoB,SACpBC,qBAAuB,YACvBC,oBAAsB,WACtBC,qBAAuB,sBACvBC,kBAAoB,SACpBC,2BAA6B,kBAE7B9N,uBAAuB,2BACvB+N,oBAAsB,iBACtBC,cAAgB,iBAChBC,oBAAsB,cACtBC,uBAAyB,8DAEzBC,cAAgB,YAChBC,iBAAmB,UACnBC,iBAAmB,eACnBC,oBAAsB,aACtBC,gBAAkB,cAClBC,eAAiB,aAEjB1L,UAAU,CACdhB,OAAQ,EACR2M,MAAM,EACNC,SAAU,eACVC,UAAW,SACXha,QAAS,UACTia,aAAc,MAGVvL,cAAc,CAClBvB,OAAQ,2BACR2M,KAAM,UACNC,SAAU,mBACVC,UAAW,mBACXha,QAAS,SACTia,aAAc,iBASVC,SAAAA,WACJ,SAAAA,EAAYrd,EAASiC,GACnB8D,KAAK2F,SAAW1L,EAChB+F,KAAKuX,QAAU,KACfvX,KAAKyO,QAAUzO,KAAK0O,WAAWxS,GAC/B8D,KAAKwX,MAAQxX,KAAKyX,kBAClBzX,KAAK0X,UAAY1X,KAAK2X,gBAEtB3X,KAAKiP,qBACLrQ,KAAKC,QAAQ5E,EAAS+K,WAAUhF,iCAmBlCgJ,OAAA,WACE,IAAIhJ,KAAK2F,SAASiS,WAAY5X,KAAK2F,SAASU,UAAUE,SAAS+B,uBAA/D,CAIA,IAAMuP,EAAW7X,KAAK2F,SAASU,UAAUE,SAAS4M,mBAElDmE,EAASQ,aAELD,GAIJ7X,KAAKsU,WAGPA,KAAA,WACE,KAAItU,KAAK2F,SAASiS,UAAY5X,KAAK2F,SAASU,UAAUE,SAAS+B,wBAAwBtI,KAAKwX,MAAMnR,UAAUE,SAAS4M,oBAArH,CAIA,IAAML,EAASwE,EAASS,qBAAqB/X,KAAK2F,UAC5C0L,EAAgB,CACpBA,cAAerR,KAAK2F,UAKtB,IAFkBlE,aAAawC,QAAQjE,KAAK2F,SAAUoN,aAAY1B,GAEpDzR,iBAAd,CAKA,IAAKI,KAAK0X,UAAW,CACnB,QAAsB,IAAXM,OACT,MAAM,IAAIvF,UAAU,mEAGtB,IAAIwF,EAAmBjY,KAAK2F,SAEG,WAA3B3F,KAAKyO,QAAQ2I,UACfa,EAAmBnF,EACVxX,UAAU0E,KAAKyO,QAAQ2I,aAChCa,EAAmBjY,KAAKyO,QAAQ2I,eAGa,IAAlCpX,KAAKyO,QAAQ2I,UAAUjC,SAChC8C,EAAmBjY,KAAKyO,QAAQ2I,UAAU,KAOhB,iBAA1BpX,KAAKyO,QAAQ0I,UACfrE,EAAOzM,UAAUoD,IAAI8M,4BAGvBvW,KAAKuX,QAAU,IAAIS,OAAOC,EAAkBjY,KAAKwX,MAAOxX,KAAKkY,oBAQvB,IAAA9Q,EADxC,GAAI,iBAAkBtN,SAASyD,kBAC5BuV,EAAO3M,QAAQuQ,sBAChBtP,EAAA,IAAGC,OAAHzF,MAAAwF,EAAatN,SAASmE,KAAKsJ,UACxBjL,SAAQ,SAAAwX,GAAI,OAAIrS,aAAa+B,GAAGsQ,EAAM,YAAa,KAAMlW,WAG9DoC,KAAK2F,SAAS2D,QACdtJ,KAAK2F,SAAS4D,aAAa,iBAAiB,GAE5CQ,YAAYkB,YAAYjL,KAAKwX,MAAOrE,mBACpCpJ,YAAYkB,YAAYjL,KAAK2F,SAAUwN,mBACvC1R,aAAawC,QAAQ6O,EAAQE,cAAa3B,QAG5CgD,KAAA,WACE,IAAIrU,KAAK2F,SAASiS,WAAY5X,KAAK2F,SAASU,UAAUE,SAAS+B,wBAAyBtI,KAAKwX,MAAMnR,UAAUE,SAAS4M,mBAAtH,CAIA,IAAML,EAASwE,EAASS,qBAAqB/X,KAAK2F,UAC5C0L,EAAgB,CACpBA,cAAerR,KAAK2F,UAGJlE,aAAawC,QAAQ6O,EAAQG,aAAY5B,GAE7CzR,mBAIVI,KAAKuX,SACPvX,KAAKuX,QAAQY,UAGfpO,YAAYkB,YAAYjL,KAAKwX,MAAOrE,mBACpCpJ,YAAYkB,YAAYjL,KAAK2F,SAAUwN,mBACvC1R,aAAawC,QAAQ6O,EAAQI,eAAc7B,QAG7CnL,QAAA,WACEtH,KAAKI,WAAWgB,KAAK2F,SAAUX,YAC/BvD,aAAaC,IAAI1B,KAAK2F,SAAUV,aAChCjF,KAAK2F,SAAW,KAChB3F,KAAKwX,MAAQ,KACTxX,KAAKuX,UACPvX,KAAKuX,QAAQY,UACbnY,KAAKuX,QAAU,SAInBa,OAAA,WACEpY,KAAK0X,UAAY1X,KAAK2X,gBAClB3X,KAAKuX,SACPvX,KAAKuX,QAAQc,oBAMjBpJ,mBAAA,WAAqB,IAAA7I,EAAApG,KACnByB,aAAa+B,GAAGxD,KAAK2F,SAAUoQ,aAAa,SAAAxU,GAC1CA,EAAM5B,iBACN4B,EAAM+W,kBACNlS,EAAK4C,eAIT0F,WAAA,SAAWxS,GAaT,OAZAA,EAAMkO,eAAAA,eAAAA,eAAA,GACDpK,KAAKuY,YAAYhN,SACjBxB,YAAYG,kBAAkBlK,KAAK2F,WACnCzJ,GAGLF,gBACE8I,OACA5I,EACA8D,KAAKuY,YAAYzM,aAGZ5P,KAGTub,gBAAA,WACE,OAAOtQ,eAAegB,KAAKnI,KAAK2F,SAAU8Q,eAAe,MAG3D+B,cAAA,WACE,IAAMC,EAAiBzY,KAAK2F,SAAS1I,WACjCyb,EAAY5B,iBAgBhB,OAbI2B,EAAepS,UAAUE,SAAS2P,oBACpCwC,EAAY9B,cACR5W,KAAKwX,MAAMnR,UAAUE,SAAS8P,wBAChCqC,EAAY7B,mBAEL4B,EAAepS,UAAUE,SAAS4P,sBAC3CuC,EAAY1B,gBACHyB,EAAepS,UAAUE,SAAS6P,qBAC3CsC,EAAYzB,eACHjX,KAAKwX,MAAMnR,UAAUE,SAAS8P,wBACvCqC,EAAY3B,qBAGP2B,KAGTf,cAAA,WACE,OAAOzX,QAAQF,KAAK2F,SAASQ,QAAd,IAA0BmQ,uBAG3CqC,WAAA,WAAa,IAAAzI,EAAAlQ,KACLuK,EAAS,GAef,MAbmC,mBAAxBvK,KAAKyO,QAAQlE,OACtBA,EAAOlJ,GAAK,SAAA7C,GAMV,OALAA,EAAKoa,QAALxO,eAAAA,eAAA,GACK5L,EAAKoa,SACL1I,EAAKzB,QAAQlE,OAAO/L,EAAKoa,QAAS1I,EAAKvK,WAAa,IAGlDnH,GAGT+L,EAAOA,OAASvK,KAAKyO,QAAQlE,OAGxBA,KAGT2N,iBAAA,WACE,IAAMb,EAAe,CACnBqB,UAAW1Y,KAAKwY,gBAChBK,UAAW,CACTtO,OAAQvK,KAAK2Y,aACbzB,KAAM,CACJ4B,QAAS9Y,KAAKyO,QAAQyI,MAExB6B,gBAAiB,CACfC,kBAAmBhZ,KAAKyO,QAAQ0I,YAYtC,MAN6B,WAAzBnX,KAAKyO,QAAQrR,UACfia,EAAawB,UAAUI,WAAa,CAClCH,SAAS,IAIb1O,eAAAA,eAAA,GACKiN,GACArX,KAAKyO,QAAQ4I,iBAMb6B,kBAAP,SAAyBjf,EAASiC,GAChC,IAAIsC,EAAOI,KAAKG,QAAQ9E,EAAS+K,YAOjC,GAJKxG,IACHA,EAAO,IAAI8Y,EAASrd,EAHY,iBAAXiC,EAAsBA,EAAS,OAMhC,iBAAXA,EAAqB,CAC9B,QAA4B,IAAjBsC,EAAKtC,GACd,MAAM,IAAIuW,UAAJ,oBAAkCvW,EAAlC,KAGRsC,EAAKtC,SAIFwK,gBAAP,SAAuBxK,GACrB,OAAO8D,KAAK2G,MAAK,WACf2Q,EAAS4B,kBAAkBlZ,KAAM9D,SAI9B4b,WAAP,SAAkBvW,GAChB,IAAIA,GAAUA,EAAMiI,SAAWqM,qBACb,UAAftU,EAAMI,MAAoBJ,EAAMhD,MAAQmX,SAM3C,IAFA,IAAMyD,EAAUhS,eAAelI,KAAKwJ,wBAE3BzG,EAAI,EAAGM,EAAM6W,EAAQlX,OAAQD,EAAIM,EAAKN,IAAK,CAClD,IAAM8Q,EAASwE,EAASS,qBAAqBoB,EAAQnX,IAC/CoX,EAAUxa,KAAKG,QAAQoa,EAAQnX,GAAIgD,YACnCqM,EAAgB,CACpBA,cAAe8H,EAAQnX,IAOzB,GAJIT,GAAwB,UAAfA,EAAMI,OACjB0P,EAAcgI,WAAa9X,GAGxB6X,EAAL,CAIA,IAAME,EAAeF,EAAQ5B,MAC7B,GAAK2B,EAAQnX,GAAGqE,UAAUE,SAAS4M,mBAInC,KAAI5R,IAA0B,UAAfA,EAAMI,MACjB,kBAAkB/E,KAAK2E,EAAMQ,OAAO+O,UACpB,UAAfvP,EAAMI,MAAoBJ,EAAMhD,MAAQmX,UACzC4D,EAAa/S,SAAShF,EAAMQ,SAKhC,IADkBN,aAAawC,QAAQ6O,EAAQG,aAAY5B,GAC7CzR,iBAAd,CAMgD,IAAA4H,EAAhD,GAAI,iBAAkB1N,SAASyD,iBAC7BiK,EAAA,IAAGH,OAAHzF,MAAA4F,EAAa1N,SAASmE,KAAKsJ,UACxBjL,SAAQ,SAAAwX,GAAI,OAAIrS,aAAaC,IAAIoS,EAAM,YAAa,KAAMlW,WAG/Dub,EAAQnX,GAAGuH,aAAa,gBAAiB,SAErC6P,EAAQ7B,SACV6B,EAAQ7B,QAAQY,UAGlBmB,EAAajT,UAAUC,OAAO6M,mBAC9BgG,EAAQnX,GAAGqE,UAAUC,OAAO6M,mBAC5B1R,aAAawC,QAAQ6O,EAAQI,eAAc7B,SAIxC0G,qBAAP,SAA4B9d,GAC1B,OAAOO,uBAAuBP,IAAYA,EAAQgD,cAG7Csc,sBAAP,SAA6BhY,GAQ3B,KAAI,kBAAkB3E,KAAK2E,EAAMQ,OAAO+O,SACtCvP,EAAMhD,MAAQkX,WAAclU,EAAMhD,MAAQiX,aACxCjU,EAAMhD,MAAQqX,gBAAkBrU,EAAMhD,MAAQoX,cAC9CpU,EAAMQ,OAAOoE,QAAQsQ,iBACtBX,eAAelZ,KAAK2E,EAAMhD,QAI7BgD,EAAM5B,iBACN4B,EAAM+W,mBAEFtY,KAAK4X,WAAY5X,KAAKqG,UAAUE,SAAS+B,wBAA7C,CAIA,IAAMwK,EAASwE,EAASS,qBAAqB/X,MACvC6X,EAAW7X,KAAKqG,UAAUE,SAAS4M,mBAEzC,GAAI5R,EAAMhD,MAAQiX,WAIhB,OAHexV,KAAKM,QAAQmI,wBAAwBzI,KAAOmH,eAAea,KAAKhI,KAAMyI,wBAAsB,IACpGa,aACPgO,EAASQ,aAIX,GAAKD,GAAYtW,EAAMhD,MAAQkX,UAA/B,CAKA,IAAM+D,EAAQrS,eAAelI,KAAK0X,uBAAwB7D,GACvDrL,OAAO1K,WAEV,GAAKyc,EAAMvX,OAAX,CAIA,IAAI0N,EAAQ6J,EAAM1W,QAAQvB,EAAMQ,QAE5BR,EAAMhD,MAAQoX,cAAgBhG,EAAQ,GACxCA,IAGEpO,EAAMhD,MAAQqX,gBAAkBjG,EAAQ6J,EAAMvX,OAAS,GACzD0N,IAMF6J,EAFA7J,GAAmB,IAAXA,EAAe,EAAIA,GAEdrG,cAxBXgO,EAASQ,iBA2BNhR,YAAP,SAAmB7M,GACjB,OAAO2E,KAAKG,QAAQ9E,EAAS+K,gEAlY7B,OAAOD,0CAIP,OAAOwG,8CAIP,OAAOO,oBAvBLwL,GA2ZN7V,aAAa+B,GAAG1J,SAAUkc,uBAAwBvN,uBAAsB6O,SAASiC,uBACjF9X,aAAa+B,GAAG1J,SAAUkc,uBAAwBS,cAAea,SAASiC,uBAC1E9X,aAAa+B,GAAG1J,SAAUwL,uBAAsBgS,SAASQ,YACzDrW,aAAa+B,GAAG1J,SAAUmc,qBAAsBqB,SAASQ,YACzDrW,aAAa+B,GAAG1J,SAAUwL,uBAAsBmD,wBAAsB,SAAUlH,GAC9EA,EAAM5B,iBACN4B,EAAM+W,kBACNhB,SAAS4B,kBAAkBlZ,KAAM,aAEnCyB,aACG+B,GAAG1J,SAAUwL,uBAAsBkR,qBAAqB,SAAAjX,GAAC,OAAIA,EAAE+Y,qBAElE,IAAM/X,IAAIxC,YASV,GAAIwC,IAAG,CACL,IAAMwG,qBAAqBxG,IAAEc,GAAGyD,QAChCvE,IAAEc,GAAGyD,QAAQwS,SAAS5Q,gBACtBnG,IAAEc,GAAGyD,QAAMkC,YAAcsQ,SACzB/W,IAAEc,GAAGyD,QAAMmC,WAAa,WAEtB,OADA1G,IAAEc,GAAGyD,QAAQiC,qBACNuQ,SAAS5Q,iBC3fpB,IAAM5B,OAAO,QACPC,UAAU,QACVC,WAAW,WACXC,YAAS,IAAOD,WAChBE,eAAe,YACfsQ,aAAa,SAEbjK,UAAU,CACdkO,UAAU,EACVhO,UAAU,EACVnC,OAAO,EACPgL,MAAM,GAGFxI,cAAc,CAClB2N,SAAU,mBACVhO,SAAU,UACVnC,MAAO,UACPgL,KAAM,WAGFrB,aAAU,OAAUhO,YACpByU,qBAAoB,gBAAmBzU,YACvCiO,eAAY,SAAYjO,YACxB8N,aAAU,OAAU9N,YACpB+N,cAAW,QAAW/N,YACtB0U,cAAa,UAAa1U,YAC1B2U,aAAY,SAAY3U,YACxB4U,oBAAmB,gBAAmB5U,YACtC6U,sBAAqB,kBAAqB7U,YAC1C8U,sBAAqB,kBAAqB9U,YAC1C+U,wBAAuB,oBAAuB/U,YAC9CK,uBAAoB,QAAWL,YAAYC,eAE3C+U,8BAAgC,0BAChCC,oBAAsB,iBACtBC,gBAAkB,aAClBC,gBAAkB,OAClBjH,kBAAkB,OAClBkH,kBAAoB,eAEpBC,gBAAkB,gBAClBC,oBAAsB,cACtB9R,uBAAuB,wBACvB+R,sBAAwB,yBACxBC,uBAAyB,oDACzBC,wBAA0B,cAQ1BC,MAAAA,WACJ,SAAAA,EAAY1gB,EAASiC,GACnB8D,KAAKyO,QAAUzO,KAAK0O,WAAWxS,GAC/B8D,KAAK2F,SAAW1L,EAChB+F,KAAK4a,QAAUzT,eAAe9H,QAAQib,gBAAiBrgB,GACvD+F,KAAK6a,UAAY,KACjB7a,KAAK8a,UAAW,EAChB9a,KAAK+a,oBAAqB,EAC1B/a,KAAKgb,sBAAuB,EAC5Bhb,KAAK2T,kBAAmB,EACxB3T,KAAKib,gBAAkB,EACvBrc,KAAKC,QAAQ5E,EAAS+K,WAAUhF,iCAelCgJ,OAAA,SAAOqI,GACL,OAAOrR,KAAK8a,SAAW9a,KAAKqU,OAASrU,KAAKsU,KAAKjD,MAGjDiD,KAAA,SAAKjD,GAAe,IAAAjL,EAAApG,KAClB,IAAIA,KAAK8a,WAAY9a,KAAK2T,iBAA1B,CAII3T,KAAK2F,SAASU,UAAUE,SAAS6T,mBACnCpa,KAAK2T,kBAAmB,GAG1B,IAAMuH,EAAYzZ,aAAawC,QAAQjE,KAAK2F,SAAUoN,aAAY,CAChE1B,cAAAA,IAGErR,KAAK8a,UAAYI,EAAUtb,mBAI/BI,KAAK8a,UAAW,EAEhB9a,KAAKmb,kBACLnb,KAAKob,gBAELpb,KAAKqb,gBAELrb,KAAKsb,kBACLtb,KAAKub,kBAEL9Z,aAAa+B,GAAGxD,KAAK2F,SACnBkU,oBACAW,uBACA,SAAAjZ,GAAK,OAAI6E,EAAKiO,KAAK9S,MAGrBE,aAAa+B,GAAGxD,KAAK4a,QAASZ,yBAAyB,WACrDvY,aAAagC,IAAI2C,EAAKT,SAAUoU,uBAAuB,SAAAxY,GACjDA,EAAMQ,SAAWqE,EAAKT,WACxBS,EAAK4U,sBAAuB,SAKlChb,KAAKwb,eAAc,WAAA,OAAMpV,EAAKqV,aAAapK,WAG7CgD,KAAA,SAAK9S,GAAO,IAAA2O,EAAAlQ,KAKV,IAJIuB,GACFA,EAAM5B,iBAGHK,KAAK8a,WAAY9a,KAAK2T,oBAITlS,aAAawC,QAAQjE,KAAK2F,SAAUsN,cAExCrT,iBAAd,CAIAI,KAAK8a,UAAW,EAChB,IAAMY,EAAa1b,KAAK2F,SAASU,UAAUE,SAAS6T,iBAgBpD,GAdIsB,IACF1b,KAAK2T,kBAAmB,GAG1B3T,KAAKsb,kBACLtb,KAAKub,kBAEL9Z,aAAaC,IAAI5H,SAAU6f,eAE3B3Z,KAAK2F,SAASU,UAAUC,OAAO6M,mBAE/B1R,aAAaC,IAAI1B,KAAK2F,SAAUkU,qBAChCpY,aAAaC,IAAI1B,KAAK4a,QAASZ,yBAE3B0B,EAAY,CACd,IAAM7gB,EAAqBJ,iCAAiCuF,KAAK2F,UAEjElE,aAAagC,IAAIzD,KAAK2F,SAAUxM,gBAAgB,SAAAoI,GAAK,OAAI2O,EAAKyL,WAAWpa,MACzE/F,qBAAqBwE,KAAK2F,SAAU9K,QAEpCmF,KAAK2b,iBAITzV,QAAA,WACE,CAACvL,OAAQqF,KAAK2F,SAAU3F,KAAK4a,SAC1Bte,SAAQ,SAAAsf,GAAW,OAAIna,aAAaC,IAAIka,EAAa3W,gBAOxDxD,aAAaC,IAAI5H,SAAU6f,eAE3B/a,KAAKI,WAAWgB,KAAK2F,SAAUX,YAE/BhF,KAAKyO,QAAU,KACfzO,KAAK2F,SAAW,KAChB3F,KAAK4a,QAAU,KACf5a,KAAK6a,UAAY,KACjB7a,KAAK8a,SAAW,KAChB9a,KAAK+a,mBAAqB,KAC1B/a,KAAKgb,qBAAuB,KAC5Bhb,KAAK2T,iBAAmB,KACxB3T,KAAKib,gBAAkB,QAGzBY,aAAA,WACE7b,KAAKqb,mBAKP3M,WAAA,SAAWxS,GAMT,OALAA,EAAMkO,eAAAA,eAAA,GACDmB,WACArP,GAELF,gBAAgB8I,OAAM5I,EAAQ4P,eACvB5P,KAGTuf,aAAA,SAAapK,GAAe,IAAAhB,EAAArQ,KACpB0b,EAAa1b,KAAK2F,SAASU,UAAUE,SAAS6T,iBAC9C0B,EAAY3U,eAAe9H,QAAQkb,oBAAqBva,KAAK4a,SAE9D5a,KAAK2F,SAAS1I,YACf+C,KAAK2F,SAAS1I,WAAW1B,WAAasM,KAAKC,cAE7ChO,SAASmE,KAAK8d,YAAY/b,KAAK2F,UAGjC3F,KAAK2F,SAAS3I,MAAMI,QAAU,QAC9B4C,KAAK2F,SAAStF,gBAAgB,eAC9BL,KAAK2F,SAAS4D,aAAa,cAAc,GACzCvJ,KAAK2F,SAASgF,UAAY,EAEtBmR,IACFA,EAAUnR,UAAY,GAGpB+Q,GACF7d,OAAOmC,KAAK2F,UAGd3F,KAAK2F,SAASU,UAAUoD,IAAI0J,mBAExBnT,KAAKyO,QAAQnF,OACftJ,KAAKgc,gBAGP,IAAMC,EAAqB,WACrB5L,EAAK5B,QAAQnF,OACf+G,EAAK1K,SAAS2D,QAGhB+G,EAAKsD,kBAAmB,EACxBlS,aAAawC,QAAQoM,EAAK1K,SAAUqN,cAAa,CAC/C3B,cAAAA,KAIJ,GAAIqK,EAAY,CACd,IAAM7gB,EAAqBJ,iCAAiCuF,KAAK4a,SAEjEnZ,aAAagC,IAAIzD,KAAK4a,QAASzhB,eAAgB8iB,GAC/CzgB,qBAAqBwE,KAAK4a,QAAS/f,QAEnCohB,OAIJD,cAAA,WAAgB,IAAAjK,EAAA/R,KACdyB,aAAaC,IAAI5H,SAAU6f,eAC3BlY,aAAa+B,GAAG1J,SAAU6f,eAAe,SAAApY,GACnCzH,WAAayH,EAAMQ,QACnBgQ,EAAKpM,WAAapE,EAAMQ,QACvBgQ,EAAKpM,SAASY,SAAShF,EAAMQ,SAChCgQ,EAAKpM,SAAS2D,cAKpBgS,gBAAA,WAAkB,IAAAY,EAAAlc,KACZA,KAAK8a,SACPrZ,aAAa+B,GAAGxD,KAAK2F,SAAUmU,uBAAuB,SAAAvY,GAChD2a,EAAKzN,QAAQhD,UAAYlK,EAAMhD,MAAQiX,cACzCjU,EAAM5B,iBACNuc,EAAK7H,QACK6H,EAAKzN,QAAQhD,UAAYlK,EAAMhD,MAAQiX,cACjD0G,EAAKC,gCAIT1a,aAAaC,IAAI1B,KAAK2F,SAAUmU,0BAIpCyB,gBAAA,WAAkB,IAAAa,EAAApc,KACZA,KAAK8a,SACPrZ,aAAa+B,GAAG7I,OAAQif,cAAc,WAAA,OAAMwC,EAAKf,mBAEjD5Z,aAAaC,IAAI/G,OAAQif,iBAI7B+B,WAAA,WAAa,IAAAU,EAAArc,KACXA,KAAK2F,SAAS3I,MAAMI,QAAU,OAC9B4C,KAAK2F,SAAS4D,aAAa,eAAe,GAC1CvJ,KAAK2F,SAAStF,gBAAgB,cAC9BL,KAAK2T,kBAAmB,EACxB3T,KAAKwb,eAAc,WACjB1hB,SAASmE,KAAKoI,UAAUC,OAAO6T,iBAC/BkC,EAAKC,oBACLD,EAAKE,kBACL9a,aAAawC,QAAQoY,EAAK1W,SAAUuN,sBAIxCsJ,gBAAA,WACExc,KAAK6a,UAAU5d,WAAWwJ,YAAYzG,KAAK6a,WAC3C7a,KAAK6a,UAAY,QAGnBW,cAAA,SAAciB,GAAU,IAAAC,EAAA1c,KAChB2c,EAAU3c,KAAK2F,SAASU,UAAUE,SAAS6T,iBAC/CA,gBACA,GAEF,GAAIpa,KAAK8a,UAAY9a,KAAKyO,QAAQgL,SAAU,CA6B1C,GA5BAzZ,KAAK6a,UAAY/gB,SAAS4F,cAAc,OACxCM,KAAK6a,UAAU3P,UAAYgP,oBAEvByC,GACF3c,KAAK6a,UAAUxU,UAAUoD,IAAIkT,GAG/B7iB,SAASmE,KAAK8d,YAAY/b,KAAK6a,WAE/BpZ,aAAa+B,GAAGxD,KAAK2F,SAAUkU,qBAAqB,SAAAtY,GAC9Cmb,EAAK1B,qBACP0B,EAAK1B,sBAAuB,EAI1BzZ,EAAMQ,SAAWR,EAAMqb,eAI3BF,EAAKP,gCAGHQ,GACF9e,OAAOmC,KAAK6a,WAGd7a,KAAK6a,UAAUxU,UAAUoD,IAAI0J,oBAExBwJ,EAEH,YADAF,IAIF,IAAMI,EAA6BpiB,iCAAiCuF,KAAK6a,WAEzEpZ,aAAagC,IAAIzD,KAAK6a,UAAW1hB,eAAgBsjB,GACjDjhB,qBAAqBwE,KAAK6a,UAAWgC,QAChC,IAAK7c,KAAK8a,UAAY9a,KAAK6a,UAAW,CAC3C7a,KAAK6a,UAAUxU,UAAUC,OAAO6M,mBAEhC,IAAM2J,EAAiB,WACrBJ,EAAKF,kBACLC,KAGF,GAAIzc,KAAK2F,SAASU,UAAUE,SAAS6T,iBAAkB,CACrD,IAAMyC,EAA6BpiB,iCAAiCuF,KAAK6a,WACzEpZ,aAAagC,IAAIzD,KAAK6a,UAAW1hB,eAAgB2jB,GACjDthB,qBAAqBwE,KAAK6a,UAAWgC,QAErCC,SAGFL,OAIJN,2BAAA,WAA6B,IAAAY,EAAA/c,KAC3B,GAA8B,WAA1BA,KAAKyO,QAAQgL,SAAuB,CAEtC,GADkBhY,aAAawC,QAAQjE,KAAK2F,SAAU+T,sBACxC9Z,iBACZ,OAGFI,KAAK2F,SAASU,UAAUoD,IAAI4Q,mBAC5B,IAAM2C,EAA0BviB,iCAAiCuF,KAAK2F,UACtElE,aAAagC,IAAIzD,KAAK2F,SAAUxM,gBAAgB,WAC9C4jB,EAAKpX,SAASU,UAAUC,OAAO+T,sBAEjC7e,qBAAqBwE,KAAK2F,SAAUqX,GACpChd,KAAK2F,SAAS2D,aAEdtJ,KAAKqU,UAQTgH,cAAA,WACE,IAAM4B,EACJjd,KAAK2F,SAASuX,aAAepjB,SAASyD,gBAAgB4f,cAEnDnd,KAAK+a,oBAAsBkC,IAC9Bjd,KAAK2F,SAAS3I,MAAMogB,YAAiBpd,KAAKib,gBAA1C,MAGEjb,KAAK+a,qBAAuBkC,IAC9Bjd,KAAK2F,SAAS3I,MAAMqgB,aAAkBrd,KAAKib,gBAA3C,SAIJqB,kBAAA,WACEtc,KAAK2F,SAAS3I,MAAMogB,YAAc,GAClCpd,KAAK2F,SAAS3I,MAAMqgB,aAAe,MAGrClC,gBAAA,WACE,IAAM3Q,EAAO1Q,SAASmE,KAAKwM,wBAC3BzK,KAAK+a,mBAAqBnhB,KAAK0jB,MAAM9S,EAAKI,KAAOJ,EAAK+S,OAAS5iB,OAAO6iB,WACtExd,KAAKib,gBAAkBjb,KAAKyd,wBAG9BrC,cAAA,WAAgB,IAAAsC,EAAA1d,KACd,GAAIA,KAAK+a,mBAAoB,CAK3B5T,eAAelI,KAAKwb,wBACjBne,SAAQ,SAAArC,GACP,IAAM0jB,EAAgB1jB,EAAQ+C,MAAMqgB,aAC9BO,EAAoBjjB,OAAOC,iBAAiBX,GAAS,iBAC3D8P,YAAYC,iBAAiB/P,EAAS,gBAAiB0jB,GACvD1jB,EAAQ+C,MAAMqgB,aAAkBriB,WAAW4iB,GAAqBF,EAAKzC,gBAArE,QAIJ9T,eAAelI,KAAKyb,yBACjBpe,SAAQ,SAAArC,GACP,IAAM4jB,EAAe5jB,EAAQ+C,MAAM8gB,YAC7BC,EAAmBpjB,OAAOC,iBAAiBX,GAAS,gBAC1D8P,YAAYC,iBAAiB/P,EAAS,eAAgB4jB,GACtD5jB,EAAQ+C,MAAM8gB,YAAiB9iB,WAAW+iB,GAAoBL,EAAKzC,gBAAnE,QAIJ,IAAM0C,EAAgB7jB,SAASmE,KAAKjB,MAAMqgB,aACpCO,EAAoBjjB,OAAOC,iBAAiBd,SAASmE,MAAM,iBAEjE8L,YAAYC,iBAAiBlQ,SAASmE,KAAM,gBAAiB0f,GAC7D7jB,SAASmE,KAAKjB,MAAMqgB,aAAkBriB,WAAW4iB,GAAqB5d,KAAKib,gBAA3E,KAGFnhB,SAASmE,KAAKoI,UAAUoD,IAAI0Q,oBAG9BoC,gBAAA,WAEEpV,eAAelI,KAAKwb,wBACjBne,SAAQ,SAAArC,GACP,IAAM+jB,EAAUjU,YAAYO,iBAAiBrQ,EAAS,sBAC/B,IAAZ+jB,IACTjU,YAAYE,oBAAoBhQ,EAAS,iBACzCA,EAAQ+C,MAAMqgB,aAAeW,MAKnC7W,eAAelI,KAAf,GAAuByb,yBACpBpe,SAAQ,SAAArC,GACP,IAAMgkB,EAASlU,YAAYO,iBAAiBrQ,EAAS,qBAC/B,IAAXgkB,IACTlU,YAAYE,oBAAoBhQ,EAAS,gBACzCA,EAAQ+C,MAAM8gB,YAAcG,MAKlC,IAAMD,EAAUjU,YAAYO,iBAAiBxQ,SAASmE,KAAM,sBACrC,IAAZ+f,EACTlkB,SAASmE,KAAKjB,MAAMqgB,aAAe,IAEnCtT,YAAYE,oBAAoBnQ,SAASmE,KAAM,iBAC/CnE,SAASmE,KAAKjB,MAAMqgB,aAAeW,MAIvCP,mBAAA,WACE,IAAMS,EAAYpkB,SAAS4F,cAAc,OACzCwe,EAAUhT,UAAY+O,8BACtBngB,SAASmE,KAAK8d,YAAYmC,GAC1B,IAAMC,EAAiBD,EAAUzT,wBAAwB2T,MAAQF,EAAUG,YAE3E,OADAvkB,SAASmE,KAAKwI,YAAYyX,GACnBC,KAKFzX,gBAAP,SAAuBxK,EAAQmV,GAC7B,OAAOrR,KAAK2G,MAAK,WACf,IAAInI,EAAOI,KAAKG,QAAQiB,KAAMgF,YACxByJ,EAAOrE,eAAAA,eAAAA,eAAA,GACRmB,WACAxB,YAAYG,kBAAkBlK,OACZ,iBAAX9D,GAAuBA,EAASA,EAAS,IAOrD,GAJKsC,IACHA,EAAO,IAAImc,EAAM3a,KAAMyO,IAGH,iBAAXvS,EAAqB,CAC9B,QAA4B,IAAjBsC,EAAKtC,GACd,MAAM,IAAIuW,UAAJ,oBAAkCvW,EAAlC,KAGRsC,EAAKtC,GAAQmV,QACJ5C,EAAQ6F,MACjB9V,EAAK8V,KAAKjD,SAKTvK,YAAP,SAAmB7M,GACjB,OAAO2E,KAAKG,QAAQ9E,EAAS+K,gEApc7B,OAAOD,0CAIP,OAAOwG,gBArBLoP,GA+dNlZ,aAAa+B,GAAG1J,SAAUwL,uBAAsBmD,wBAAsB,SAAUlH,GAAO,IAAA+c,EAAAte,KAC/E+B,EAASvH,uBAAuBwF,MAEjB,MAAjBA,KAAK8Q,SAAoC,SAAjB9Q,KAAK8Q,SAC/BvP,EAAM5B,iBAGR8B,aAAagC,IAAI1B,EAAQgR,cAAY,SAAAmI,GAC/BA,EAAUtb,kBAKd6B,aAAagC,IAAI1B,EAAQmR,gBAAc,WACjCnW,UAAUuhB,IACZA,EAAKhV,cAKX,IAAI9K,EAAOI,KAAKG,QAAQgD,EAAQiD,YAChC,IAAKxG,EAAM,CACT,IAAMtC,EAAMkO,eAAAA,eAAA,GACPL,YAAYG,kBAAkBnI,IAC9BgI,YAAYG,kBAAkBlK,OAGnCxB,EAAO,IAAImc,MAAM5Y,EAAQ7F,GAG3BsC,EAAK8V,KAAKtU,SAGZ,IAAMO,IAAIxC,YASV,GAAIwC,IAAG,CACL,IAAMwG,qBAAqBxG,IAAEc,GAAGyD,QAChCvE,IAAEc,GAAGyD,QAAQ6V,MAAMjU,gBACnBnG,IAAEc,GAAGyD,QAAMkC,YAAc2T,MACzBpa,IAAEc,GAAGyD,QAAMmC,WAAa,WAEtB,OADA1G,IAAEc,GAAGyD,QAAQiC,qBACN4T,MAAMjU,iBC1lBjB,IAAM6X,SAAW,CACf,aACA,OACA,OACA,WACA,WACA,SACA,MACA,cAGIC,uBAAyB,iBAOzBC,iBAAmB,8DAOnBC,iBAAmB,qIAEnBC,iBAAmB,SAACC,EAAMC,GAC9B,IAAMC,EAAWF,EAAKG,SAAStlB,cAE/B,IAAgD,IAA5ColB,EAAqB/b,QAAQgc,GAC/B,OAAoC,IAAhCP,SAASzb,QAAQgc,KACZL,iBAAiB7hB,KAAKgiB,EAAKI,YAAcN,iBAAiB9hB,KAAKgiB,EAAKI,YAS/E,IAHA,IAAMC,EAASJ,EAAqBpX,QAAO,SAAAyX,GAAS,OAAIA,aAAqBviB,UAGpEqF,EAAI,EAAGM,EAAM2c,EAAOhd,OAAQD,EAAIM,EAAKN,IAC5C,GAAIid,EAAOjd,GAAGpF,KAAKkiB,GACjB,OAAO,EAIX,OAAO,GAGIK,iBAAmB,CAE9BC,IAAK,CAAC,QAAS,MAAO,KAAM,OAAQ,OAAQZ,wBAC5Ca,EAAG,CAAC,SAAU,OAAQ,QAAS,OAC/BC,KAAM,GACNC,EAAG,GACHC,GAAI,GACJC,IAAK,GACLC,KAAM,GACNC,IAAK,GACLC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJC,GAAI,GACJne,EAAG,GACHoe,IAAK,CAAC,MAAO,SAAU,MAAO,QAAS,QAAS,UAChDC,GAAI,GACJC,GAAI,GACJC,EAAG,GACHC,IAAK,GACLC,EAAG,GACHC,MAAO,GACPC,KAAM,GACNC,IAAK,GACLC,IAAK,GACLC,OAAQ,GACRC,EAAG,GACHC,GAAI,IAGC,SAASC,aAAaC,EAAYC,EAAWC,GAAY,IAAAha,EAC9D,IAAK8Z,EAAWjf,OACd,OAAOif,EAGT,GAAIE,GAAoC,mBAAfA,EACvB,OAAOA,EAAWF,GAQpB,IALA,IACMG,GADY,IAAI1mB,OAAO2mB,WACKC,gBAAgBL,EAAY,aACxDM,EAAgBplB,OAAOC,KAAK8kB,GAC5BM,GAAWra,EAAA,IAAGC,OAAHzF,MAAAwF,EAAaia,EAAgBpjB,KAAKmB,iBAAiB,MAZNsiB,EAAA,SAcrD1f,EAAOM,GAd8C,IAAAkF,EAetDma,EAAKF,EAASzf,GACd4f,EAASD,EAAG5C,SAAStlB,cAE3B,IAAuC,IAAnC+nB,EAAc1e,QAAQ8e,GAGxB,OAFAD,EAAG1kB,WAAWwJ,YAAYkb,GAE1B,WAGF,IAAME,GAAgBra,EAAA,IAAGH,OAAHzF,MAAA4F,EAAama,EAAGxX,YAChC2X,EAAwB,GAAGza,OAAO8Z,EAAU,MAAQ,GAAIA,EAAUS,IAAW,IAEnFC,EAAcvlB,SAAQ,SAAAsiB,GACfD,iBAAiBC,EAAMkD,IAC1BH,EAAGthB,gBAAgBue,EAAKG,cAfrB/c,EAAI,EAAGM,EAAMmf,EAASxf,OAAQD,EAAIM,EAAKN,IAAK0f,EAA5C1f,GAoBT,OAAOqf,EAAgBpjB,KAAK8jB,UC3F9B,IAAMjd,OAAO,UACPC,UAAU,QACVC,WAAW,aACXC,YAAS,IAAOD,WAChBgd,aAAe,aACfC,mBAAqB,IAAItlB,OAAJ,UAAqBqlB,aAArB,OAAyC,KAC9DE,sBAAwB,CAAC,WAAY,YAAa,cAElDpW,cAAc,CAClBqW,UAAW,UACXC,SAAU,SACVC,MAAO,4BACPpe,QAAS,SACTqe,MAAO,kBACPC,KAAM,UACNroB,SAAU,mBACVwe,UAAW,oBACXnO,OAAQ,2BACRkK,UAAW,2BACX+N,kBAAmB,iBACnBrL,SAAU,mBACVsL,SAAU,UACVrB,WAAY,kBACZD,UAAW,SACX9J,aAAc,iBAGVqL,cAAgB,CACpBC,KAAM,OACNC,IAAK,MACLC,MAAO,QACPC,OAAQ,SACRC,KAAM,QAGFxX,UAAU,CACd4W,WAAW,EACXC,SAAU,+GAGVne,QAAS,cACToe,MAAO,GACPC,MAAO,EACPC,MAAM,EACNroB,UAAU,EACVwe,UAAW,MACXnO,OAAQ,EACRkK,WAAW,EACX+N,kBAAmB,OACnBrL,SAAU,eACVsL,UAAU,EACVrB,WAAY,KACZD,UAAWhC,iBACX9H,aAAc,MAGVhc,QAAQ,CACZ2nB,KAAI,OAAS/d,YACbge,OAAM,SAAWhe,YACjBie,KAAI,OAASje,YACbke,MAAK,QAAUle,YACfme,SAAQ,WAAane,YACrBoe,MAAK,QAAUpe,YACfqe,QAAO,UAAYre,YACnBse,SAAQ,WAAate,YACrBue,WAAU,aAAeve,YACzBwe,WAAU,aAAexe,aAGrBmV,kBAAkB,OAClBsJ,iBAAmB,QACnBvQ,kBAAkB,OAElBwQ,iBAAmB,OACnBC,gBAAkB,MAElBC,uBAAyB,iBAEzBC,cAAgB,QAChBC,cAAgB,QAChBC,cAAgB,QAChBC,eAAiB,SAQjBC,QAAAA,WACJ,SAAAA,EAAYjqB,EAASiC,GACnB,QAAsB,IAAX8b,OACT,MAAM,IAAIvF,UAAU,kEAItBzS,KAAKmkB,YAAa,EAClBnkB,KAAKokB,SAAW,EAChBpkB,KAAKqkB,YAAc,GACnBrkB,KAAKskB,eAAiB,GACtBtkB,KAAKuX,QAAU,KAGfvX,KAAK/F,QAAUA,EACf+F,KAAK9D,OAAS8D,KAAK0O,WAAWxS,GAC9B8D,KAAKukB,IAAM,KAEXvkB,KAAKwkB,gBACL5lB,KAAKC,QAAQ5E,EAAS+F,KAAKuY,YAAYvT,SAAUhF,iCAmCnDykB,OAAA,WACEzkB,KAAKmkB,YAAa,KAGpBO,QAAA,WACE1kB,KAAKmkB,YAAa,KAGpBQ,cAAA,WACE3kB,KAAKmkB,YAAcnkB,KAAKmkB,cAG1Bnb,OAAA,SAAOzH,GACL,GAAKvB,KAAKmkB,WAIV,GAAI5iB,EAAO,CACT,IAAMqjB,EAAU5kB,KAAKuY,YAAYvT,SAC7BoU,EAAUxa,KAAKG,QAAQwC,EAAMQ,OAAQ6iB,GAEpCxL,IACHA,EAAU,IAAIpZ,KAAKuY,YACjBhX,EAAMQ,OACN/B,KAAK6kB,sBAEPjmB,KAAKC,QAAQ0C,EAAMQ,OAAQ6iB,EAASxL,IAGtCA,EAAQkL,eAAeQ,OAAS1L,EAAQkL,eAAeQ,MAEnD1L,EAAQ2L,uBACV3L,EAAQ4L,OAAO,KAAM5L,GAErBA,EAAQ6L,OAAO,KAAM7L,OAElB,CACL,GAAIpZ,KAAKklB,gBAAgB7e,UAAUE,SAAS4M,mBAE1C,YADAnT,KAAKilB,OAAO,KAAMjlB,MAIpBA,KAAKglB,OAAO,KAAMhlB,UAItBkG,QAAA,WACEyK,aAAa3Q,KAAKokB,UAElBxlB,KAAKI,WAAWgB,KAAK/F,QAAS+F,KAAKuY,YAAYvT,UAE/CvD,aAAaC,IAAI1B,KAAK/F,QAAS+F,KAAKuY,YAAYtT,WAChDxD,aAAaC,IAAI1B,KAAK/F,QAAQkM,QAAb,IAAyBud,kBAAqB,gBAAiB1jB,KAAKmlB,mBAEjFnlB,KAAKukB,KACPvkB,KAAKukB,IAAItnB,WAAWwJ,YAAYzG,KAAKukB,KAGvCvkB,KAAKmkB,WAAa,KAClBnkB,KAAKokB,SAAW,KAChBpkB,KAAKqkB,YAAc,KACnBrkB,KAAKskB,eAAiB,KAClBtkB,KAAKuX,SACPvX,KAAKuX,QAAQY,UAGfnY,KAAKuX,QAAU,KACfvX,KAAK/F,QAAU,KACf+F,KAAK9D,OAAS,KACd8D,KAAKukB,IAAM,QAGbjQ,KAAA,WAAO,IAAAlO,EAAApG,KACL,GAAmC,SAA/BA,KAAK/F,QAAQ+C,MAAMI,QACrB,MAAM,IAAIP,MAAM,uCAGlB,GAAImD,KAAKolB,iBAAmBplB,KAAKmkB,WAAY,CAC3C,IAAMjJ,EAAYzZ,aAAawC,QAAQjE,KAAK/F,QAAS+F,KAAKuY,YAAYld,MAAM6nB,MACtEmC,EAAa/nB,eAAe0C,KAAK/F,SACjCqrB,EAA4B,OAAfD,EACjBrlB,KAAK/F,QAAQsrB,cAAchoB,gBAAgBgJ,SAASvG,KAAK/F,SACzDorB,EAAW9e,SAASvG,KAAK/F,SAE3B,GAAIihB,EAAUtb,mBAAqB0lB,EACjC,OAGF,IAAMf,EAAMvkB,KAAKklB,gBACXM,EAAQ9rB,OAAOsG,KAAKuY,YAAYzT,MAEtCyf,EAAIhb,aAAa,KAAMic,GACvBxlB,KAAK/F,QAAQsP,aAAa,mBAAoBic,GAE9CxlB,KAAKylB,aAEDzlB,KAAK9D,OAAOimB,WACdoC,EAAIle,UAAUoD,IAAI2Q,mBAGpB,IAAM1B,EAA6C,mBAA1B1Y,KAAK9D,OAAOwc,UACnC1Y,KAAK9D,OAAOwc,UAAUnf,KAAKyG,KAAMukB,EAAKvkB,KAAK/F,SAC3C+F,KAAK9D,OAAOwc,UAERgN,EAAa1lB,KAAK2lB,eAAejN,GACvC1Y,KAAK4lB,oBAAoBF,GAEzB,IAiBgDte,EAjB1CqN,EAAYzU,KAAK6lB,gBAiBvB,GAhBAjnB,KAAKC,QAAQ0lB,EAAKvkB,KAAKuY,YAAYvT,SAAUhF,MAExCA,KAAK/F,QAAQsrB,cAAchoB,gBAAgBgJ,SAASvG,KAAKukB,MAC5D9P,EAAUsH,YAAYwI,GAGxB9iB,aAAawC,QAAQjE,KAAK/F,QAAS+F,KAAKuY,YAAYld,MAAM+nB,UAE1DpjB,KAAKuX,QAAU,IAAIS,OAAOhY,KAAK/F,QAASsqB,EAAKvkB,KAAKkY,iBAAiBwN,IAEnEnB,EAAIle,UAAUoD,IAAI0J,mBAMd,iBAAkBrZ,SAASyD,iBAC7B6J,EAAA,IAAGC,OAAHzF,MAAAwF,EAAatN,SAASmE,KAAKsJ,UAAUjL,SAAQ,SAAArC,GAC3CwH,aAAa+B,GAAGvJ,EAAS,YAAa2D,WAI1C,IAAMkoB,EAAW,WACX1f,EAAKlK,OAAOimB,WACd/b,EAAK2f,iBAGP,IAAMC,EAAiB5f,EAAKie,YAC5Bje,EAAKie,YAAc,KAEnB5iB,aAAawC,QAAQmC,EAAKnM,QAASmM,EAAKmS,YAAYld,MAAM8nB,OAEtD6C,IAAmBpC,iBACrBxd,EAAK6e,OAAO,KAAM7e,IAItB,GAAIpG,KAAKukB,IAAIle,UAAUE,SAAS6T,mBAAkB,CAChD,IAAMvf,EAAqBJ,iCAAiCuF,KAAKukB,KACjE9iB,aAAagC,IAAIzD,KAAKukB,IAAKprB,eAAgB2sB,GAC3CtqB,qBAAqBwE,KAAKukB,IAAK1pB,QAE/BirB,QAKNzR,KAAA,WAAO,IAAAnE,EAAAlQ,KACCukB,EAAMvkB,KAAKklB,gBACXY,EAAW,WACX5V,EAAKmU,cAAgBV,kBAAoBY,EAAItnB,YAC/CsnB,EAAItnB,WAAWwJ,YAAY8d,GAG7BrU,EAAK+V,iBACL/V,EAAKjW,QAAQoG,gBAAgB,oBAC7BoB,aAAawC,QAAQiM,EAAKjW,QAASiW,EAAKqI,YAAYld,MAAM4nB,QAC1D/S,EAAKqH,QAAQY,WAIf,IADkB1W,aAAawC,QAAQjE,KAAK/F,QAAS+F,KAAKuY,YAAYld,MAAM2nB,MAC9DpjB,iBAAd,CAQgD,IAAA4H,EAAhD,GAJA+c,EAAIle,UAAUC,OAAO6M,mBAIjB,iBAAkBrZ,SAASyD,iBAC7BiK,EAAA,IAAGH,OAAHzF,MAAA4F,EAAa1N,SAASmE,KAAKsJ,UACxBjL,SAAQ,SAAArC,GAAO,OAAIwH,aAAaC,IAAIzH,EAAS,YAAa2D,SAO/D,GAJAoC,KAAKskB,eAAeN,gBAAiB,EACrChkB,KAAKskB,eAAeP,gBAAiB,EACrC/jB,KAAKskB,eAAeR,gBAAiB,EAEjC9jB,KAAKukB,IAAIle,UAAUE,SAAS6T,mBAAkB,CAChD,IAAMvf,EAAqBJ,iCAAiC8pB,GAE5D9iB,aAAagC,IAAI8gB,EAAKprB,eAAgB2sB,GACtCtqB,qBAAqB+oB,EAAK1pB,QAE1BirB,IAGF9lB,KAAKqkB,YAAc,OAGrBjM,OAAA,WACuB,OAAjBpY,KAAKuX,SACPvX,KAAKuX,QAAQc,oBAMjB+M,cAAA,WACE,OAAOllB,QAAQF,KAAKkmB,eAGtBhB,cAAA,WACE,GAAIllB,KAAKukB,IACP,OAAOvkB,KAAKukB,IAGd,IAAMtqB,EAAUH,SAAS4F,cAAc,OAIvC,OAHAzF,EAAQ8nB,UAAY/hB,KAAK9D,OAAOkmB,SAEhCpiB,KAAKukB,IAAMtqB,EAAQsN,SAAS,GACrBvH,KAAKukB,OAGdkB,WAAA,WACE,IAAMlB,EAAMvkB,KAAKklB,gBACjBllB,KAAKmmB,kBAAkBhf,eAAe9H,QAAQwkB,uBAAwBU,GAAMvkB,KAAKkmB,YACjF3B,EAAIle,UAAUC,OAAO8T,kBAAiBjH,sBAGxCgT,kBAAA,SAAkBlsB,EAASmsB,GACzB,GAAgB,OAAZnsB,EAIJ,MAAuB,iBAAZmsB,GAAwB9qB,UAAU8qB,IACvCA,EAAQjR,SACViR,EAAUA,EAAQ,SAIhBpmB,KAAK9D,OAAOqmB,KACV6D,EAAQnpB,aAAehD,IACzBA,EAAQ8nB,UAAY,GACpB9nB,EAAQ8hB,YAAYqK,IAGtBnsB,EAAQosB,YAAcD,EAAQC,mBAM9BrmB,KAAK9D,OAAOqmB,MACVviB,KAAK9D,OAAOumB,WACd2D,EAAUnF,aAAamF,EAASpmB,KAAK9D,OAAOilB,UAAWnhB,KAAK9D,OAAOklB,aAGrEnnB,EAAQ8nB,UAAYqE,GAEpBnsB,EAAQosB,YAAcD,MAI1BF,SAAA,WACE,IAAI7D,EAAQriB,KAAK/F,QAAQE,aAAa,uBAQtC,OANKkoB,IACHA,EAAqC,mBAAtBriB,KAAK9D,OAAOmmB,MACzBriB,KAAK9D,OAAOmmB,MAAM9oB,KAAKyG,KAAK/F,SAC5B+F,KAAK9D,OAAOmmB,OAGTA,KAKTnK,iBAAA,SAAiBwN,GAAY,IAAArV,EAAArQ,KAuB3B,OAAAoK,eAAAA,eAAA,GAtBwB,CACtBsO,UAAWgN,EACX7M,UAAW,CACTtO,OAAQvK,KAAK2Y,aACbzB,KAAM,CACJoP,SAAUtmB,KAAK9D,OAAOsmB,mBAExB+D,MAAO,CACLtsB,QAAO,IAAM+F,KAAKuY,YAAYzT,KAAvB,UAETiU,gBAAiB,CACfC,kBAAmBhZ,KAAK9D,OAAOib,WAGnCqP,SAAU,SAAAhoB,GACJA,EAAKioB,oBAAsBjoB,EAAKka,WAClCrI,EAAKqW,6BAA6BloB,IAGtCmoB,SAAU,SAAAnoB,GAAI,OAAI6R,EAAKqW,6BAA6BloB,MAKjDwB,KAAK9D,OAAOmb,iBAInBuO,oBAAA,SAAoBF,GAClB1lB,KAAKklB,gBAAgB7e,UAAUoD,IAAOuY,aAAtC,IAAsD0D,MAGxD/M,WAAA,WAAa,IAAA5G,EAAA/R,KACLuK,EAAS,GAef,MAbkC,mBAAvBvK,KAAK9D,OAAOqO,OACrBA,EAAOlJ,GAAK,SAAA7C,GAMV,OALAA,EAAKoa,QAALxO,eAAAA,eAAA,GACK5L,EAAKoa,SACL7G,EAAK7V,OAAOqO,OAAO/L,EAAKoa,QAAS7G,EAAK9X,UAAY,IAGhDuE,GAGT+L,EAAOA,OAASvK,KAAK9D,OAAOqO,OAGvBA,KAGTsb,cAAA,WACE,OAA8B,IAA1B7lB,KAAK9D,OAAOuY,UACP3a,SAASmE,KAGd3C,UAAU0E,KAAK9D,OAAOuY,WACjBzU,KAAK9D,OAAOuY,UAGdtN,eAAe9H,QAAQW,KAAK9D,OAAOuY,cAG5CkR,eAAA,SAAejN,GACb,OAAOgK,cAAchK,EAAU5b,kBAGjC0nB,cAAA,WAAgB,IAAAtI,EAAAlc,KACGA,KAAK9D,OAAO+H,QAAQ/I,MAAM,KAElCoB,SAAQ,SAAA2H,GACf,GAAgB,UAAZA,EACFxC,aAAa+B,GAAG0Y,EAAKjiB,QACnBiiB,EAAK3D,YAAYld,MAAMgoB,MACvBnH,EAAKhgB,OAAOhC,UACZ,SAAAqH,GAAK,OAAI2a,EAAKlT,OAAOzH,WAElB,GAAI0C,IAAYggB,eAAgB,CACrC,IAAM2C,EAAU3iB,IAAY6f,cAC1B5H,EAAK3D,YAAYld,MAAMmoB,WACvBtH,EAAK3D,YAAYld,MAAMioB,QACnBuD,EAAW5iB,IAAY6f,cAC3B5H,EAAK3D,YAAYld,MAAMooB,WACvBvH,EAAK3D,YAAYld,MAAMkoB,SAEzB9hB,aAAa+B,GAAG0Y,EAAKjiB,QACnB2sB,EACA1K,EAAKhgB,OAAOhC,UACZ,SAAAqH,GAAK,OAAI2a,EAAK8I,OAAOzjB,MAEvBE,aAAa+B,GAAG0Y,EAAKjiB,QACnB4sB,EACA3K,EAAKhgB,OAAOhC,UACZ,SAAAqH,GAAK,OAAI2a,EAAK+I,OAAO1jB,UAK3BvB,KAAKmlB,kBAAoB,WACnBjJ,EAAKjiB,SACPiiB,EAAK7H,QAIT5S,aAAa+B,GAAGxD,KAAK/F,QAAQkM,QAAb,IAAyBud,kBACvC,gBACA1jB,KAAKmlB,mBAGHnlB,KAAK9D,OAAOhC,SACd8F,KAAK9D,OAALkO,eAAAA,eAAA,GACKpK,KAAK9D,QADV,GAAA,CAEE+H,QAAS,SACT/J,SAAU,KAGZ8F,KAAK8mB,eAITA,UAAA,WACE,IAAMC,SAAmB/mB,KAAK/F,QAAQE,aAAa,wBAE/C6F,KAAK/F,QAAQE,aAAa,UAA0B,WAAd4sB,KACxC/mB,KAAK/F,QAAQsP,aACX,sBACAvJ,KAAK/F,QAAQE,aAAa,UAAY,IAGxC6F,KAAK/F,QAAQsP,aAAa,QAAS,QAIvCyb,OAAA,SAAOzjB,EAAO6X,GACZ,IAAMwL,EAAU5kB,KAAKuY,YAAYvT,UACjCoU,EAAUA,GAAWxa,KAAKG,QAAQwC,EAAMQ,OAAQ6iB,MAG9CxL,EAAU,IAAIpZ,KAAKuY,YACjBhX,EAAMQ,OACN/B,KAAK6kB,sBAEPjmB,KAAKC,QAAQ0C,EAAMQ,OAAQ6iB,EAASxL,IAGlC7X,IACF6X,EAAQkL,eACS,YAAf/iB,EAAMI,KAAqBoiB,cAAgBD,gBACzC,GAGF1K,EAAQ8L,gBAAgB7e,UAAUE,SAAS4M,oBAC3CiG,EAAQiL,cAAgBV,iBAC1BvK,EAAQiL,YAAcV,kBAIxBhT,aAAayI,EAAQgL,UAErBhL,EAAQiL,YAAcV,iBAEjBvK,EAAQld,OAAOomB,OAAUlJ,EAAQld,OAAOomB,MAAMhO,KAKnD8E,EAAQgL,SAAWroB,YAAW,WACxBqd,EAAQiL,cAAgBV,kBAC1BvK,EAAQ9E,SAET8E,EAAQld,OAAOomB,MAAMhO,MARtB8E,EAAQ9E,WAWZ2Q,OAAA,SAAO1jB,EAAO6X,GACZ,IAAMwL,EAAU5kB,KAAKuY,YAAYvT,UACjCoU,EAAUA,GAAWxa,KAAKG,QAAQwC,EAAMQ,OAAQ6iB,MAG9CxL,EAAU,IAAIpZ,KAAKuY,YACjBhX,EAAMQ,OACN/B,KAAK6kB,sBAEPjmB,KAAKC,QAAQ0C,EAAMQ,OAAQ6iB,EAASxL,IAGlC7X,IACF6X,EAAQkL,eACS,aAAf/iB,EAAMI,KAAsBoiB,cAAgBD,gBAC1C,GAGF1K,EAAQ2L,yBAIZpU,aAAayI,EAAQgL,UAErBhL,EAAQiL,YAAcT,gBAEjBxK,EAAQld,OAAOomB,OAAUlJ,EAAQld,OAAOomB,MAAMjO,KAKnD+E,EAAQgL,SAAWroB,YAAW,WACxBqd,EAAQiL,cAAgBT,iBAC1BxK,EAAQ/E,SAET+E,EAAQld,OAAOomB,MAAMjO,MARtB+E,EAAQ/E,WAWZ0Q,qBAAA,WACE,IAAK,IAAM9gB,KAAWjE,KAAKskB,eACzB,GAAItkB,KAAKskB,eAAergB,GACtB,OAAO,EAIX,OAAO,KAGTyK,WAAA,SAAWxS,GACT,IAAM8qB,EAAiBjd,YAAYG,kBAAkBlK,KAAK/F,SA4C1D,OA1CAmC,OAAOC,KAAK2qB,GACT1qB,SAAQ,SAAA2qB,IAC0C,IAA7C/E,sBAAsBpf,QAAQmkB,WACzBD,EAAeC,MAIxB/qB,GAAsC,iBAArBA,EAAOuY,WAA0BvY,EAAOuY,UAAUU,SACrEjZ,EAAOuY,UAAYvY,EAAOuY,UAAU,IASV,iBAN5BvY,EAAMkO,eAAAA,eAAAA,eAAA,GACDpK,KAAKuY,YAAYhN,SACjByb,GACkB,iBAAX9qB,GAAuBA,EAASA,EAAS,KAGnComB,QAChBpmB,EAAOomB,MAAQ,CACbhO,KAAMpY,EAAOomB,MACbjO,KAAMnY,EAAOomB,QAIW,iBAAjBpmB,EAAOmmB,QAChBnmB,EAAOmmB,MAAQnmB,EAAOmmB,MAAM/oB,YAGA,iBAAnB4C,EAAOkqB,UAChBlqB,EAAOkqB,QAAUlqB,EAAOkqB,QAAQ9sB,YAGlC0C,gBACE8I,OACA5I,EACA8D,KAAKuY,YAAYzM,aAGf5P,EAAOumB,WACTvmB,EAAOkmB,SAAWnB,aAAa/kB,EAAOkmB,SAAUlmB,EAAOilB,UAAWjlB,EAAOklB,aAGpEllB,KAGT2oB,mBAAA,WACE,IAAM3oB,EAAS,GAEf,GAAI8D,KAAK9D,OACP,IAAK,IAAMqC,KAAOyB,KAAK9D,OACjB8D,KAAKuY,YAAYhN,QAAQhN,KAASyB,KAAK9D,OAAOqC,KAChDrC,EAAOqC,GAAOyB,KAAK9D,OAAOqC,IAKhC,OAAOrC,KAGT+pB,eAAA,WACE,IAAM1B,EAAMvkB,KAAKklB,gBACXgC,EAAW3C,EAAIpqB,aAAa,SAASX,MAAMyoB,oBAChC,OAAbiF,GAAqBA,EAASjlB,OAAS,GACzCilB,EAASC,KAAI,SAAAC,GAAK,OAAIA,EAAM/sB,UACzBiC,SAAQ,SAAA+qB,GAAM,OAAI9C,EAAIle,UAAUC,OAAO+gB,SAI9CX,6BAAA,SAA6BY,GAC3B,IAAMC,EAAiBD,EAAWxoB,SAClCkB,KAAKukB,IAAMgD,EAAeC,OAC1BxnB,KAAKimB,iBACLjmB,KAAK4lB,oBAAoB5lB,KAAK2lB,eAAe2B,EAAW5O,eAG1DqN,eAAA,WACE,IAAMxB,EAAMvkB,KAAKklB,gBACXuC,EAAsBznB,KAAK9D,OAAOimB,UACA,OAApCoC,EAAIpqB,aAAa,iBAIrBoqB,EAAIle,UAAUC,OAAO8T,mBACrBpa,KAAK9D,OAAOimB,WAAY,EACxBniB,KAAKqU,OACLrU,KAAKsU,OACLtU,KAAK9D,OAAOimB,UAAYsF,MAKnB/gB,gBAAP,SAAuBxK,GACrB,OAAO8D,KAAK2G,MAAK,WACf,IAAInI,EAAOI,KAAKG,QAAQiB,KAAMgF,YACxByJ,EAA4B,iBAAXvS,GAAuBA,EAE9C,IAAKsC,IAAQ,eAAe5B,KAAKV,MAI5BsC,IACHA,EAAO,IAAI0lB,EAAQlkB,KAAMyO,IAGL,iBAAXvS,GAAqB,CAC9B,QAA4B,IAAjBsC,EAAKtC,GACd,MAAM,IAAIuW,UAAJ,oBAAkCvW,EAAlC,KAGRsC,EAAKtC,YAKJ4K,YAAP,SAAmB7M,GACjB,OAAO2E,KAAKG,QAAQ9E,EAAS+K,gEAroB7B,OAAOD,0CAIP,OAAOwG,uCAIP,OAAOzG,wCAIP,OAAOE,yCAIP,OAAO3J,0CAIP,OAAO4J,gDAIP,OAAO6G,oBAjDLoY,GAkqBA3jB,IAAIxC,YASV,GAAIwC,IAAG,CACL,IAAMwG,qBAAqBxG,IAAEc,GAAGyD,QAChCvE,IAAEc,GAAGyD,QAAQof,QAAQxd,gBACrBnG,IAAEc,GAAGyD,QAAMkC,YAAckd,QACzB3jB,IAAEc,GAAGyD,QAAMmC,WAAa,WAEtB,OADA1G,IAAEc,GAAGyD,QAAQiC,qBACNmd,QAAQxd,iBC1xBnB,IAAM5B,OAAO,UACPC,UAAU,QACVC,WAAW,aACXC,YAAS,IAAOD,WAChBgd,eAAe,aACfC,qBAAqB,IAAItlB,OAAJ,UAAqBqlB,eAArB,OAAyC,KAE9DzW,UAAOnB,eAAAA,eAAA,GACR8Z,QAAQ3Y,SADA,GAAA,CAEXmN,UAAW,QACXzU,QAAS,QACTmiB,QAAS,GACThE,SAAU,gJAMNtW,cAAW1B,eAAAA,eAAA,GACZ8Z,QAAQpY,aADI,GAAA,CAEfsa,QAAS,8BAGL/qB,QAAQ,CACZ2nB,KAAI,OAAS/d,YACbge,OAAM,SAAWhe,YACjBie,KAAI,OAASje,YACbke,MAAK,QAAUle,YACfme,SAAQ,WAAane,YACrBoe,MAAK,QAAUpe,YACfqe,QAAO,UAAYre,YACnBse,SAAQ,WAAate,YACrBue,WAAU,aAAeve,YACzBwe,WAAU,aAAexe,aAGrBmV,kBAAkB,OAClBjH,kBAAkB,OAElBuU,eAAiB,kBACjBC,iBAAmB,gBAQnBC,QAAAA,SAAAA,oGAiCJxC,cAAA,WACE,OAAOplB,KAAKkmB,YAAclmB,KAAK6nB,iBAGjCpC,WAAA,WACE,IAAMlB,EAAMvkB,KAAKklB,gBAGjBllB,KAAKmmB,kBAAkBhf,eAAe9H,QAAQqoB,eAAgBnD,GAAMvkB,KAAKkmB,YACzE,IAAIE,EAAUpmB,KAAK6nB,cACI,mBAAZzB,IACTA,EAAUA,EAAQ7sB,KAAKyG,KAAK/F,UAG9B+F,KAAKmmB,kBAAkBhf,eAAe9H,QAAQsoB,iBAAkBpD,GAAM6B,GAEtE7B,EAAIle,UAAUC,OAAO8T,kBAAiBjH,sBAGxCyS,oBAAA,SAAoBF,GAClB1lB,KAAKklB,gBAAgB7e,UAAUoD,IAAOuY,eAAtC,IAAsD0D,MAKxDmC,YAAA,WACE,OAAO7nB,KAAK/F,QAAQE,aAAa,iBAC/B6F,KAAK9D,OAAOkqB,WAGhBH,eAAA,WACE,IAAM1B,EAAMvkB,KAAKklB,gBACXgC,EAAW3C,EAAIpqB,aAAa,SAASX,MAAMyoB,sBAChC,OAAbiF,GAAqBA,EAASjlB,OAAS,GACzCilB,EAASC,KAAI,SAAAC,GAAK,OAAIA,EAAM/sB,UACzBiC,SAAQ,SAAA+qB,GAAM,OAAI9C,EAAIle,UAAUC,OAAO+gB,SAMvC3gB,gBAAP,SAAuBxK,GACrB,OAAO8D,KAAK2G,MAAK,WACf,IAAInI,EAAOI,KAAKG,QAAQiB,KAAMgF,YACxByJ,EAA4B,iBAAXvS,EAAsBA,EAAS,KAEtD,IAAKsC,IAAQ,eAAe5B,KAAKV,MAI5BsC,IACHA,EAAO,IAAIopB,EAAQ5nB,KAAMyO,GACzB7P,KAAKC,QAAQmB,KAAMgF,WAAUxG,IAGT,iBAAXtC,GAAqB,CAC9B,QAA4B,IAAjBsC,EAAKtC,GACd,MAAM,IAAIuW,UAAJ,oBAAkCvW,EAAlC,KAGRsC,EAAKtC,YAKJ4K,YAAP,SAAmB7M,GACjB,OAAO2E,KAAKG,QAAQ9E,EAAS+K,gEA/F7B,OAAOD,0CAIP,OAAOwG,uCAIP,OAAOzG,wCAIP,OAAOE,yCAIP,OAAO3J,0CAIP,OAAO4J,gDAIP,OAAO6G,oBA5BL8b,CAAgB1D,SAuGhB3jB,IAAIxC,YAQV,GAAIwC,IAAG,CACL,IAAMwG,qBAAqBxG,IAAEc,GAAGyD,QAChCvE,IAAEc,GAAGyD,QAAQ8iB,QAAQlhB,gBACrBnG,IAAEc,GAAGyD,QAAMkC,YAAc4gB,QACzBrnB,IAAEc,GAAGyD,QAAMmC,WAAa,WAEtB,OADA1G,IAAEc,GAAGyD,QAAQiC,qBACN6gB,QAAQlhB,iBC9JnB,IAAM5B,OAAO,YACPC,UAAU,QACVC,WAAW,eACXC,YAAS,IAAOD,WAChBE,eAAe,YAEfqG,UAAU,CACdhB,OAAQ,GACRud,OAAQ,OACR/lB,OAAQ,IAGJ+J,cAAc,CAClBvB,OAAQ,SACRud,OAAQ,SACR/lB,OAAQ,oBAGJgmB,eAAc,WAAc9iB,YAC5B+iB,aAAY,SAAY/iB,YACxB6H,sBAAmB,OAAU7H,YAAYC,eAEzC+iB,yBAA2B,gBAC3B5f,oBAAoB,SAEpB6f,kBAAoB,sBACpBC,wBAA0B,oBAC1BC,mBAAqB,YACrBC,mBAAqB,YACrBC,oBAAsB,mBACtBC,kBAAoB,YACpBC,yBAA2B,mBAE3BC,cAAgB,SAChBC,gBAAkB,WAQlBC,UAAAA,WACJ,SAAAA,EAAY1uB,EAASiC,GAAQ,IAAAkK,EAAApG,KAC3BA,KAAK2F,SAAW1L,EAChB+F,KAAK4oB,eAAqC,SAApB3uB,EAAQ6W,QAAqBnW,OAASV,EAC5D+F,KAAKyO,QAAUzO,KAAK0O,WAAWxS,GAC/B8D,KAAKiU,UAAejU,KAAKyO,QAAQ1M,OAAhB,IAA0BqmB,mBAA1B,IACQpoB,KAAKyO,QAAQ1M,OADrB,IAC+BumB,oBAD/B,IAEQtoB,KAAKyO,QAAQ1M,OAFrB,KAEgCkmB,yBACjDjoB,KAAK6oB,SAAW,GAChB7oB,KAAK8oB,SAAW,GAChB9oB,KAAK+oB,cAAgB,KACrB/oB,KAAKgpB,cAAgB,EAErBvnB,aAAa+B,GAAGxD,KAAK4oB,eAAgBZ,cAAc,SAAAzmB,GAAK,OAAI6E,EAAK6iB,SAAS1nB,MAE1EvB,KAAKkpB,UACLlpB,KAAKipB,WAELrqB,KAAKC,QAAQ5E,EAAS+K,WAAUhF,iCAelCkpB,QAAA,WAAU,IAAAhZ,EAAAlQ,KACFmpB,EAAanpB,KAAK4oB,iBAAmB5oB,KAAK4oB,eAAejuB,OAC7D8tB,cACAC,gBAEIU,EAAuC,SAAxBppB,KAAKyO,QAAQqZ,OAChCqB,EACAnpB,KAAKyO,QAAQqZ,OAETuB,EAAaD,IAAiBV,gBAClC1oB,KAAKspB,gBACL,EAEFtpB,KAAK6oB,SAAW,GAChB7oB,KAAK8oB,SAAW,GAEhB9oB,KAAKgpB,cAAgBhpB,KAAKupB,mBAEVpiB,eAAelI,KAAKe,KAAKiU,WAGtCkT,KAAI,SAAAltB,GACH,IAAI8H,EACEynB,EAAiBlvB,uBAAuBL,GAM9C,GAJIuvB,IACFznB,EAASoF,eAAe9H,QAAQmqB,IAG9BznB,EAAQ,CACV,IAAM0nB,EAAY1nB,EAAO0I,wBACzB,GAAIgf,EAAUrL,OAASqL,EAAUC,OAC/B,MAAO,CACL3f,YAAYqf,GAAcrnB,GAAQ2I,IAAM2e,EACxCG,GAKN,OAAO,QAER/hB,QAAO,SAAAkiB,GAAI,OAAIA,KACfC,MAAK,SAACvK,EAAGE,GAAJ,OAAUF,EAAE,GAAKE,EAAE,MACxBjjB,SAAQ,SAAAqtB,GACPzZ,EAAK2Y,SAAS9gB,KAAK4hB,EAAK,IACxBzZ,EAAK4Y,SAAS/gB,KAAK4hB,EAAK,UAI9BzjB,QAAA,WACEtH,KAAKI,WAAWgB,KAAK2F,SAAUX,YAC/BvD,aAAaC,IAAI1B,KAAK4oB,eAAgB3jB,aAEtCjF,KAAK2F,SAAW,KAChB3F,KAAK4oB,eAAiB,KACtB5oB,KAAKyO,QAAU,KACfzO,KAAKiU,UAAY,KACjBjU,KAAK6oB,SAAW,KAChB7oB,KAAK8oB,SAAW,KAChB9oB,KAAK+oB,cAAgB,KACrB/oB,KAAKgpB,cAAgB,QAKvBta,WAAA,SAAWxS,GAMT,GAA6B,iBAL7BA,EAAMkO,eAAAA,eAAA,GACDmB,WACkB,iBAAXrP,GAAuBA,EAASA,EAAS,KAGnC6F,QAAuBzG,UAAUY,EAAO6F,QAAS,CAAA,IAC3D1D,EAAOnC,EAAO6F,OAAd1D,GACDA,IACHA,EAAK3E,OAAOoL,QACZ5I,EAAO6F,OAAO1D,GAAKA,GAGrBnC,EAAO6F,OAAP,IAAoB1D,EAKtB,OAFArC,gBAAgB8I,OAAM5I,EAAQ4P,eAEvB5P,KAGTotB,cAAA,WACE,OAAOtpB,KAAK4oB,iBAAmBjuB,OAC7BqF,KAAK4oB,eAAeiB,YACpB7pB,KAAK4oB,eAAeje,aAGxB4e,iBAAA,WACE,OAAOvpB,KAAK4oB,eAAe1L,cAAgBtjB,KAAKkwB,IAC9ChwB,SAASmE,KAAKif,aACdpjB,SAASyD,gBAAgB2f,iBAI7B6M,iBAAA,WACE,OAAO/pB,KAAK4oB,iBAAmBjuB,OAC7BA,OAAOqvB,YACPhqB,KAAK4oB,eAAene,wBAAwBif,UAGhDT,SAAA,WACE,IAAMte,EAAY3K,KAAKspB,gBAAkBtpB,KAAKyO,QAAQlE,OAChD2S,EAAeld,KAAKupB,mBACpBU,EAAYjqB,KAAKyO,QAAQlE,OAC7B2S,EACAld,KAAK+pB,mBAMP,GAJI/pB,KAAKgpB,gBAAkB9L,GACzBld,KAAKkpB,UAGHve,GAAasf,EAAjB,CACE,IAAMloB,EAAS/B,KAAK8oB,SAAS9oB,KAAK8oB,SAAS7mB,OAAS,GAEhDjC,KAAK+oB,gBAAkBhnB,GACzB/B,KAAKkqB,UAAUnoB,OAJnB,CAUA,GAAI/B,KAAK+oB,eAAiBpe,EAAY3K,KAAK6oB,SAAS,IAAM7oB,KAAK6oB,SAAS,GAAK,EAG3E,OAFA7oB,KAAK+oB,cAAgB,UACrB/oB,KAAKmqB,SAIP,IAAK,IAAInoB,EAAIhC,KAAK6oB,SAAS5mB,OAAQD,KAAM,CAChBhC,KAAK+oB,gBAAkB/oB,KAAK8oB,SAAS9mB,IACxD2I,GAAa3K,KAAK6oB,SAAS7mB,UACM,IAAzBhC,KAAK6oB,SAAS7mB,EAAI,IACtB2I,EAAY3K,KAAK6oB,SAAS7mB,EAAI,KAGpChC,KAAKkqB,UAAUlqB,KAAK8oB,SAAS9mB,SAKnCkoB,UAAA,SAAUnoB,GACR/B,KAAK+oB,cAAgBhnB,EAErB/B,KAAKmqB,SAEL,IAAMC,EAAUpqB,KAAKiU,UAAU/Y,MAAM,KAClCisB,KAAI,SAAAjtB,GAAQ,OAAOA,EAAP,iBAAgC6H,EAAhC,MAA4C7H,EAA5C,UAA8D6H,EAA9D,QAETsoB,EAAOljB,eAAe9H,QAAQ+qB,EAAQE,KAAK,MAE7CD,EAAKhkB,UAAUE,SAAS0hB,2BAC1B9gB,eACG9H,QAAQmpB,yBAA0B6B,EAAKlkB,QAAQoiB,oBAC/CliB,UAAUoD,IAAIpB,qBAEjBgiB,EAAKhkB,UAAUoD,IAAIpB,uBAGnBgiB,EAAKhkB,UAAUoD,IAAIpB,qBAEnBlB,eACGQ,QAAQ0iB,EAAMlC,yBACd7rB,SAAQ,SAAAiuB,GAGPpjB,eAAea,KAAKuiB,EAAcnC,mBAAlC,KAAyDE,qBACtDhsB,SAAQ,SAAAqtB,GAAI,OAAIA,EAAKtjB,UAAUoD,IAAIpB,wBAGtClB,eAAea,KAAKuiB,EAAWlC,oBAC5B/rB,SAAQ,SAAAkuB,GACPrjB,eAAeI,SAASijB,EAASpC,oBAC9B9rB,SAAQ,SAAAqtB,GAAI,OAAIA,EAAKtjB,UAAUoD,IAAIpB,+BAKhD5G,aAAawC,QAAQjE,KAAK4oB,eAAgBb,eAAgB,CACxD1W,cAAetP,OAInBooB,OAAA,WACEhjB,eAAelI,KAAKe,KAAKiU,WACtBxM,QAAO,SAAAgjB,GAAI,OAAIA,EAAKpkB,UAAUE,SAAS8B,wBACvC/L,SAAQ,SAAAmuB,GAAI,OAAIA,EAAKpkB,UAAUC,OAAO+B,2BAKpC3B,gBAAP,SAAuBxK,GACrB,OAAO8D,KAAK2G,MAAK,WACf,IAAInI,EAAOI,KAAKG,QAAQiB,KAAMgF,YAO9B,GAJKxG,IACHA,EAAO,IAAImqB,EAAU3oB,KAHW,iBAAX9D,GAAuBA,IAMxB,iBAAXA,EAAqB,CAC9B,QAA4B,IAAjBsC,EAAKtC,GACd,MAAM,IAAIuW,UAAJ,oBAAkCvW,EAAlC,KAGRsC,EAAKtC,YAKJ4K,YAAP,SAAmB7M,GACjB,OAAO2E,KAAKG,QAAQ9E,EAAS+K,gEA/N7B,OAAOD,0CAIP,OAAOwG,gBA5BLod,GAiQNlnB,aAAa+B,GAAG7I,OAAQmS,uBAAqB,WAC3C3F,eAAelI,KAAKipB,mBACjB5rB,SAAQ,SAAAouB,GAAG,OAAI,IAAI/B,UAAU+B,EAAK3gB,YAAYG,kBAAkBwgB,UAGrE,IAAMnqB,IAAIxC,YAQV,GAAIwC,IAAG,CACL,IAAMwG,qBAAqBxG,IAAEc,GAAGyD,QAChCvE,IAAEc,GAAGyD,QAAQ6jB,UAAUjiB,gBACvBnG,IAAEc,GAAGyD,QAAMkC,YAAc2hB,UACzBpoB,IAAEc,GAAGyD,QAAMmC,WAAa,WAEtB,OADA1G,IAAEc,GAAGyD,QAAQiC,qBACN4hB,UAAUjiB,iBC9TrB,IAAM5B,OAAO,MACPC,UAAU,QACVC,WAAW,SACXC,YAAS,IAAOD,WAChBE,eAAe,YAEf+N,aAAU,OAAUhO,YACpBiO,eAAY,SAAYjO,YACxB8N,aAAU,OAAU9N,YACpB+N,cAAW,QAAW/N,YACtBK,uBAAoB,QAAWL,YAAYC,eAE3CylB,yBAA2B,gBAC3BtiB,oBAAoB,SACpBC,sBAAsB,WACtB8R,kBAAkB,OAClBjH,kBAAkB,OAElBoV,oBAAoB,YACpBJ,0BAA0B,oBAC1Bxf,kBAAkB,UAClBiiB,mBAAqB,wBACrBniB,uBAAuB,kEACvB+f,2BAA2B,mBAC3BqC,+BAAiC,kCAQjCC,IAAAA,WACJ,SAAAA,EAAY7wB,GACV+F,KAAK2F,SAAW1L,EAEhB2E,KAAKC,QAAQmB,KAAK2F,SAAUX,WAAUhF,iCAWxCsU,KAAA,WAAO,IAAAlO,EAAApG,KACL,KAAKA,KAAK2F,SAAS1I,YACjB+C,KAAK2F,SAAS1I,WAAW1B,WAAasM,KAAKC,cAC3C9H,KAAK2F,SAASU,UAAUE,SAAS8B,sBACjCrI,KAAK2F,SAASU,UAAUE,SAAS+B,wBAHnC,CAOA,IAAIL,EACElG,EAASvH,uBAAuBwF,KAAK2F,UACrColB,EAAc/qB,KAAK2F,SAASQ,QAAQgiB,2BAE1C,GAAI4C,EAAa,CACf,IAAMC,EAAwC,OAAzBD,EAAYhM,UAA8C,OAAzBgM,EAAYhM,SAAoB6L,mBAAqBjiB,kBAE3GV,GADAA,EAAWd,eAAelI,KAAK+rB,EAAcD,IACzB9iB,EAAShG,OAAS,GAGxC,IAAIgpB,EAAY,KAYhB,GAVIhjB,IACFgjB,EAAYxpB,aAAawC,QAAQgE,EAAUgL,aAAY,CACrD5B,cAAerR,KAAK2F,cAINlE,aAAawC,QAAQjE,KAAK2F,SAAUoN,aAAY,CAChE1B,cAAepJ,IAGHrI,kBACG,OAAdqrB,GAAsBA,EAAUrrB,kBADnC,CAKAI,KAAKkqB,UACHlqB,KAAK2F,SACLolB,GAGF,IAAMjF,EAAW,WACfrkB,aAAawC,QAAQgE,EAAUiL,eAAc,CAC3C7B,cAAejL,EAAKT,WAEtBlE,aAAawC,QAAQmC,EAAKT,SAAUqN,cAAa,CAC/C3B,cAAepJ,KAIflG,EACF/B,KAAKkqB,UAAUnoB,EAAQA,EAAO9E,WAAY6oB,GAE1CA,SAIJ5f,QAAA,WACEtH,KAAKI,WAAWgB,KAAK2F,SAAUX,YAC/BhF,KAAK2F,SAAW,QAKlBukB,UAAA,SAAUjwB,EAASwa,EAAWgI,GAAU,IAAAvM,EAAAlQ,KAKhCkrB,IAJiBzW,GAAqC,OAAvBA,EAAUsK,UAA4C,OAAvBtK,EAAUsK,SAE5E5X,eAAeI,SAASkN,EAAW9L,mBADnCxB,eAAelI,KAAK2rB,mBAAoBnW,IAGZ,GACxBS,EAAkBuH,GACrByO,GAAUA,EAAO7kB,UAAUE,SAAS6T,mBAEjC0L,EAAW,WAAA,OAAM5V,EAAKib,oBAC1BlxB,EACAixB,EACAzO,IAGF,GAAIyO,GAAUhW,EAAiB,CAC7B,IAAMra,EAAqBJ,iCAAiCywB,GAC5DA,EAAO7kB,UAAUC,OAAO6M,mBAExB1R,aAAagC,IAAIynB,EAAQ/xB,eAAgB2sB,GACzCtqB,qBAAqB0vB,EAAQrwB,QAE7BirB,OAIJqF,oBAAA,SAAoBlxB,EAASixB,EAAQzO,GACnC,GAAIyO,EAAQ,CACVA,EAAO7kB,UAAUC,OAAO+B,qBAExB,IAAM+iB,EAAgBjkB,eAAe9H,QAAQwrB,+BAAgCK,EAAOjuB,YAEhFmuB,GACFA,EAAc/kB,UAAUC,OAAO+B,qBAGG,QAAhC6iB,EAAO/wB,aAAa,SACtB+wB,EAAO3hB,aAAa,iBAAiB,IAIzCtP,EAAQoM,UAAUoD,IAAIpB,qBACe,QAAjCpO,EAAQE,aAAa,SACvBF,EAAQsP,aAAa,iBAAiB,GAGxC1L,OAAO5D,GAEHA,EAAQoM,UAAUE,SAAS6T,oBAC7BngB,EAAQoM,UAAUoD,IAAI0J,mBAGpBlZ,EAAQgD,YAAchD,EAAQgD,WAAWoJ,UAAUE,SAASokB,6BACtC1wB,EAAQkM,QAAQoiB,sBAGtCphB,eAAelI,KAAKupB,4BACjBlsB,SAAQ,SAAA+uB,GAAQ,OAAIA,EAAShlB,UAAUoD,IAAIpB,wBAGhDpO,EAAQsP,aAAa,iBAAiB,IAGpCkT,GACFA,OAMG/V,gBAAP,SAAuBxK,GACrB,OAAO8D,KAAK2G,MAAK,WACf,IAAMnI,EAAOI,KAAKG,QAAQiB,KAAMgF,aAAa,IAAI8lB,EAAI9qB,MAErD,GAAsB,iBAAX9D,EAAqB,CAC9B,QAA4B,IAAjBsC,EAAKtC,GACd,MAAM,IAAIuW,UAAJ,oBAAkCvW,EAAlC,KAGRsC,EAAKtC,YAKJ4K,YAAP,SAAmB7M,GACjB,OAAO2E,KAAKG,QAAQ9E,EAAS+K,gEAzJ7B,OAAOD,gBAVL+lB,GA6KNrpB,aAAa+B,GAAG1J,SAAUwL,uBAAsBmD,wBAAsB,SAAUlH,GAC9EA,EAAM5B,kBAEOf,KAAKG,QAAQiB,KAAMgF,aAAa,IAAI8lB,IAAI9qB,OAChDsU,UAGP,IAAM/T,IAAIxC,YASV,GAAIwC,IAAG,CACL,IAAMwG,qBAAqBxG,IAAEc,GAAGyD,QAChCvE,IAAEc,GAAGyD,QAAQgmB,IAAIpkB,gBACjBnG,IAAEc,GAAGyD,QAAMkC,YAAc8jB,IACzBvqB,IAAEc,GAAGyD,QAAMmC,WAAa,WAEtB,OADA1G,IAAEc,GAAGyD,QAAQiC,qBACN+jB,IAAIpkB,iBCnOf,IAAM5B,OAAO,QACPC,UAAU,QACVC,WAAW,WACXC,YAAS,IAAOD,WAEhB6U,sBAAmB,gBAAmB5U,YACtCgO,aAAU,OAAUhO,YACpBiO,eAAY,SAAYjO,YACxB8N,aAAU,OAAU9N,YACpB+N,cAAW,QAAW/N,YAEtBmV,kBAAkB,OAClBkR,gBAAkB,OAClBnY,kBAAkB,OAClBoY,mBAAqB,UAErBzf,cAAc,CAClBqW,UAAW,UACXqJ,SAAU,UACVlJ,MAAO,UAGH/W,UAAU,CACd4W,WAAW,EACXqJ,UAAU,EACVlJ,MAAO,KAGH9H,wBAAwB,yBAQxBiR,MAAAA,WACJ,SAAAA,EAAYxxB,EAASiC,GACnB8D,KAAK2F,SAAW1L,EAChB+F,KAAKyO,QAAUzO,KAAK0O,WAAWxS,GAC/B8D,KAAKokB,SAAW,KAChBpkB,KAAKwkB,gBACL5lB,KAAKC,QAAQ5E,EAAS+K,WAAUhF,iCAmBlCsU,KAAA,WAAO,IAAAlO,EAAApG,KAGL,IAFkByB,aAAawC,QAAQjE,KAAK2F,SAAUoN,cAExCnT,iBAAd,CAIII,KAAKyO,QAAQ0T,WACfniB,KAAK2F,SAASU,UAAUoD,IAAI2Q,mBAG9B,IAAM0L,EAAW,WACf1f,EAAKT,SAASU,UAAUC,OAAOilB,oBAC/BnlB,EAAKT,SAASU,UAAUoD,IAAI0J,mBAE5B1R,aAAawC,QAAQmC,EAAKT,SAAUqN,eAEhC5M,EAAKqI,QAAQ+c,WACfplB,EAAKge,SAAWroB,YAAW,WACzBqK,EAAKiO,SACJjO,EAAKqI,QAAQ6T,SAOpB,GAHAtiB,KAAK2F,SAASU,UAAUC,OAAOglB,iBAC/BztB,OAAOmC,KAAK2F,UACZ3F,KAAK2F,SAASU,UAAUoD,IAAI8hB,oBACxBvrB,KAAKyO,QAAQ0T,UAAW,CAC1B,IAAMtnB,EAAqBJ,iCAAiCuF,KAAK2F,UAEjElE,aAAagC,IAAIzD,KAAK2F,SAAUxM,eAAgB2sB,GAChDtqB,qBAAqBwE,KAAK2F,SAAU9K,QAEpCirB,QAIJzR,KAAA,WAAO,IAAAnE,EAAAlQ,KACL,GAAKA,KAAK2F,SAASU,UAAUE,SAAS4M,qBAIpB1R,aAAawC,QAAQjE,KAAK2F,SAAUsN,cAExCrT,iBAAd,CAIA,IAAMkmB,EAAW,WACf5V,EAAKvK,SAASU,UAAUoD,IAAI6hB,iBAC5B7pB,aAAawC,QAAQiM,EAAKvK,SAAUuN,iBAItC,GADAlT,KAAK2F,SAASU,UAAUC,OAAO6M,mBAC3BnT,KAAKyO,QAAQ0T,UAAW,CAC1B,IAAMtnB,EAAqBJ,iCAAiCuF,KAAK2F,UAEjElE,aAAagC,IAAIzD,KAAK2F,SAAUxM,eAAgB2sB,GAChDtqB,qBAAqBwE,KAAK2F,SAAU9K,QAEpCirB,QAIJ5f,QAAA,WACEyK,aAAa3Q,KAAKokB,UAClBpkB,KAAKokB,SAAW,KAEZpkB,KAAK2F,SAASU,UAAUE,SAAS4M,oBACnCnT,KAAK2F,SAASU,UAAUC,OAAO6M,mBAGjC1R,aAAaC,IAAI1B,KAAK2F,SAAUkU,uBAChCjb,KAAKI,WAAWgB,KAAK2F,SAAUX,YAE/BhF,KAAK2F,SAAW,KAChB3F,KAAKyO,QAAU,QAKjBC,WAAA,SAAWxS,GAaT,OAZAA,EAAMkO,eAAAA,eAAAA,eAAA,GACDmB,WACAxB,YAAYG,kBAAkBlK,KAAK2F,WACjB,iBAAXzJ,GAAuBA,EAASA,EAAS,IAGrDF,gBACE8I,OACA5I,EACA8D,KAAKuY,YAAYzM,aAGZ5P,KAGTsoB,cAAA,WAAgB,IAAAnU,EAAArQ,KACdyB,aAAa+B,GACXxD,KAAK2F,SACLkU,sBACAW,yBACA,WAAA,OAAMnK,EAAKgE,aAMR3N,gBAAP,SAAuBxK,GACrB,OAAO8D,KAAK2G,MAAK,WACf,IAAInI,EAAOI,KAAKG,QAAQiB,KAAMgF,YAO9B,GAJKxG,IACHA,EAAO,IAAIitB,EAAMzrB,KAHe,iBAAX9D,GAAuBA,IAMxB,iBAAXA,EAAqB,CAC9B,QAA4B,IAAjBsC,EAAKtC,GACd,MAAM,IAAIuW,UAAJ,oBAAkCvW,EAAlC,KAGRsC,EAAKtC,GAAQ8D,aAKZ8G,YAAP,SAAmB7M,GACjB,OAAO2E,KAAKG,QAAQ9E,EAAS+K,gEA7I7B,OAAOD,8CAIP,OAAO+G,8CAIP,OAAOP,gBApBLkgB,GA6JAlrB,IAAIxC,YASV,GAAIwC,IAAG,CACL,IAAMwG,qBAAqBxG,IAAEc,GAAGyD,QAChCvE,IAAEc,GAAGyD,QAAQ2mB,MAAM/kB,gBACnBnG,IAAEc,GAAGyD,QAAMkC,YAAcykB,MACzBlrB,IAAEc,GAAGyD,QAAMmC,WAAa,WAEtB,OADA1G,IAAEc,GAAGyD,QAAQiC,qBACN0kB,MAAM/kB","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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = 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() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\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 element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n 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 isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\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 find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('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\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (_) {\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 find,\n findOne,\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 { getjQuery } from '../util/index'\nimport { defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst $ = getjQuery()\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\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 bootstrapHandler(element, fn) {\n return function handler(event) {\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 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.slice(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 && $) {\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 = new CustomEvent(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): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\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_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\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 return getElementFromSelector(element) || element.closest(`.${CLASSNAME_ALERT}`)\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif ($) {\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): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n return [].concat(...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 = [].concat(...element.children)\n\n return children.filter(child => child.matches(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 prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n }\n}\n\nexport default SelectorEngine\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 { getjQuery } 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 CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"buttons\"]'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_BLUR_DATA_API = `blur${EVENT_KEY}${DATA_API_KEY}`\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 = this._element.closest(SELECTOR_DATA_TOGGLE)\n\n if (rootElement) {\n const input = SelectorEngine.findOne(SELECTOR_INPUT, this._element)\n\n if (input && input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains(CLASS_NAME_DISABLED) ||\n rootElement.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n input.checked = !this._element.classList.contains(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(CLASS_NAME_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 const button = event.target.closest(SELECTOR_BUTTON)\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 = event.target.closest(SELECTOR_BUTTON)\n\n if (button) {\n button.classList.add(CLASS_NAME_FOCUS)\n }\n})\n\nEventHandler.on(document, EVENT_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = event.target.closest(SELECTOR_BUTTON)\n\n if (button) {\n button.classList.remove(CLASS_NAME_FOCUS)\n }\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\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 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(CLASS_NAME_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.key) {\n case ARROW_LEFT_KEY:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEY:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n 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(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_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 = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_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(CLASS_NAME_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, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, 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(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_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 target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_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 = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\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_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = 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(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = 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(CLASS_NAME_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(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_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(WIDTH)\n return hasWidth ? WIDTH : 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 = `${SELECTOR_DATA_TOGGLE}[data-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\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(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_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 && typeof config === 'string' && /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 = 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getElementFromSelector,\n isElement,\n isVisible,\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'\n\nconst ESCAPE_KEY = 'Escape'\nconst SPACE_KEY = 'Space'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n 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(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_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(this._element, 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 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(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...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, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_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 if (this._popper) {\n this._popper.destroy()\n }\n\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_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) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\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 return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = PLACEMENT_TOP\n if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_TOPEND\n }\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(this._element.closest(`.${CLASS_NAME_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 {\n ...popperConfig,\n ...this._config.popperConfig\n }\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.button === RIGHT_MOUSE_BUTTON ||\n (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = 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 (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && ((event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName)) ||\n (event.type === 'keyup' && event.key === TAB_KEY)) &&\n dropdownMenu.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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || 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.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent)\n .filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.key === ARROW_UP_KEY && index > 0) { // Up\n index--\n }\n\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) { // Down\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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_KEY = 'Escape'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.scrollTop = 0\n\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (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) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n 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 this._triggerBackdropTransition()\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_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(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_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 _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._element)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\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 = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n 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 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(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n 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 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 = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.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 target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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\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,[\\d+/a-z]+=*$/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 SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\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', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\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 = [].concat(...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 = [].concat(...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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\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 popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"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 popperConfig: null\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 CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.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.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, 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(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(this.element.closest(`.${CLASS_NAME_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) {\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(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n 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, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_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 [].concat(...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 === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_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 !== HOVER_STATE_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(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...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(CLASS_NAME_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(CLASS_NAME_FADE, CLASS_NAME_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.textContent = 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.textContent = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${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 return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\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(this.element.closest(`.${CLASS_NAME_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.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, 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(CLASS_NAME_SHOW) ||\n context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = 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 > 0) {\n tabClass.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(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 { getjQuery } 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 Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\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 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(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\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 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getSelectorFromElement,\n getUID,\n isElement,\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_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} .${CLASS_NAME_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 METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = 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' && isElement(config.target)) {\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 for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.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(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = 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 SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\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_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\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(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = 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 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\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_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n 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(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n 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(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_HIDE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_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(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 2847673d48..7ca8a86a61 100644
--- a/dist/js/bootstrap.js
+++ b/dist/js/bootstrap.js
@@ -411,7 +411,6 @@
var $ = getjQuery();
var namespaceRegex = /[^.]*(?=\..*)\.|.*/;
var stripNameRegex = /\..*/;
- var keyEventRegex = /^key/;
var stripUidRegex = /::\d+$/;
var eventRegistry = {}; // Events storage
@@ -438,19 +437,8 @@
return eventRegistry[uid];
}
- function fixEvent(event, element) {
- // Add which for key events
- if (event.which === null && keyEventRegex.test(event.type)) {
- event.which = event.charCode === null ? event.keyCode : event.charCode;
- }
-
- event.delegateTarget = element;
- }
-
function bootstrapHandler(element, fn) {
return function handler(event) {
- fixEvent(event, element);
-
if (handler.oneOff) {
EventHandler.off(element, event.type, fn);
}
@@ -466,8 +454,6 @@
for (var target = event.target; target && target !== this; target = target.parentNode) {
for (var i = domElements.length; i--;) {
if (domElements[i] === target) {
- fixEvent(event, target);
-
if (handler.oneOff) {
EventHandler.off(element, event.type, fn);
}
@@ -690,93 +676,6 @@
};
/**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.3.1): dom/selector-engine.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
- /**
- * ------------------------------------------------------------------------
- * Constants
- * ------------------------------------------------------------------------
- */
-
- var NODE_TEXT = 3;
- var SelectorEngine = {
- matches: function matches(element, selector) {
- return element.matches(selector);
- },
- find: function find$1(selector, element) {
- var _ref;
-
- if (element === void 0) {
- element = document.documentElement;
- }
-
- return (_ref = []).concat.apply(_ref, find.call(element, selector));
- },
- findOne: function findOne$1(selector, element) {
- if (element === void 0) {
- element = document.documentElement;
- }
-
- return findOne.call(element, selector);
- },
- children: function children(element, selector) {
- var _ref2;
-
- var children = (_ref2 = []).concat.apply(_ref2, element.children);
-
- return children.filter(function (child) {
- return child.matches(selector);
- });
- },
- parents: function parents(element, selector) {
- var parents = [];
- var ancestor = element.parentNode;
-
- while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {
- if (this.matches(ancestor, selector)) {
- parents.push(ancestor);
- }
-
- ancestor = ancestor.parentNode;
- }
-
- return parents;
- },
- closest: function closest(element, selector) {
- return element.closest(selector);
- },
- prev: function prev(element, selector) {
- var previous = element.previousElementSibling;
-
- while (previous) {
- if (previous.matches(selector)) {
- return [previous];
- }
-
- previous = previous.previousElementSibling;
- }
-
- return [];
- },
- next: function next(element, selector) {
- var next = element.nextElementSibling;
-
- while (next) {
- if (this.matches(next, selector)) {
- return [next];
- }
-
- next = next.nextElementSibling;
- }
-
- return [];
- }
- };
-
- /**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
@@ -836,13 +735,7 @@
;
_proto._getRootElement = function _getRootElement(element) {
- var parent = getElementFromSelector(element);
-
- if (!parent) {
- parent = SelectorEngine.closest(element, "." + CLASSNAME_ALERT);
- }
-
- return parent;
+ return getElementFromSelector(element) || element.closest("." + CLASSNAME_ALERT);
};
_proto._triggerCloseEvent = function _triggerCloseEvent(element) {
@@ -943,6 +836,90 @@
}
/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.3.1): dom/selector-engine.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+ /**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+ var NODE_TEXT = 3;
+ var SelectorEngine = {
+ matches: function matches(element, selector) {
+ return element.matches(selector);
+ },
+ find: function find$1(selector, element) {
+ var _ref;
+
+ if (element === void 0) {
+ element = document.documentElement;
+ }
+
+ return (_ref = []).concat.apply(_ref, find.call(element, selector));
+ },
+ findOne: function findOne$1(selector, element) {
+ if (element === void 0) {
+ element = document.documentElement;
+ }
+
+ return findOne.call(element, selector);
+ },
+ children: function children(element, selector) {
+ var _ref2;
+
+ var children = (_ref2 = []).concat.apply(_ref2, element.children);
+
+ return children.filter(function (child) {
+ return child.matches(selector);
+ });
+ },
+ parents: function parents(element, selector) {
+ var parents = [];
+ var ancestor = element.parentNode;
+
+ while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {
+ if (this.matches(ancestor, selector)) {
+ parents.push(ancestor);
+ }
+
+ ancestor = ancestor.parentNode;
+ }
+
+ return parents;
+ },
+ prev: function prev(element, selector) {
+ var previous = element.previousElementSibling;
+
+ while (previous) {
+ if (previous.matches(selector)) {
+ return [previous];
+ }
+
+ previous = previous.previousElementSibling;
+ }
+
+ return [];
+ },
+ next: function next(element, selector) {
+ var next = element.nextElementSibling;
+
+ while (next) {
+ if (this.matches(next, selector)) {
+ return [next];
+ }
+
+ next = next.nextElementSibling;
+ }
+
+ return [];
+ }
+ };
+
+ /**
* ------------------------------------------------------------------------
* Constants
* ------------------------------------------------------------------------
@@ -954,7 +931,6 @@
var EVENT_KEY$1 = "." + DATA_KEY$1;
var DATA_API_KEY$1 = '.data-api';
var CLASS_NAME_ACTIVE = 'active';
- var CLASS_NAME_BUTTON = 'btn';
var CLASS_NAME_DISABLED = 'disabled';
var CLASS_NAME_FOCUS = 'focus';
var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]';
@@ -984,7 +960,8 @@
_proto.toggle = function toggle() {
var triggerChangeEvent = true;
var addAriaPressed = true;
- var rootElement = SelectorEngine.closest(this._element, SELECTOR_DATA_TOGGLE);
+
+ var rootElement = this._element.closest(SELECTOR_DATA_TOGGLE);
if (rootElement) {
var input = SelectorEngine.findOne(SELECTOR_INPUT, this._element);
@@ -1065,12 +1042,7 @@
EventHandler.on(document, EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
event.preventDefault();
- var button = event.target;
-
- if (!button.classList.contains(CLASS_NAME_BUTTON)) {
- button = SelectorEngine.closest(button, SELECTOR_BUTTON);
- }
-
+ var button = event.target.closest(SELECTOR_BUTTON);
var data = Data.getData(button, DATA_KEY$1);
if (!data) {
@@ -1080,14 +1052,14 @@
data.toggle();
});
EventHandler.on(document, EVENT_FOCUS_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
- var button = SelectorEngine.closest(event.target, SELECTOR_BUTTON);
+ var button = event.target.closest(SELECTOR_BUTTON);
if (button) {
button.classList.add(CLASS_NAME_FOCUS);
}
});
EventHandler.on(document, EVENT_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
- var button = SelectorEngine.closest(event.target, SELECTOR_BUTTON);
+ var button = event.target.closest(SELECTOR_BUTTON);
if (button) {
button.classList.remove(CLASS_NAME_FOCUS);
@@ -1205,10 +1177,8 @@
var DATA_KEY$2 = 'bs.carousel';
var EVENT_KEY$2 = "." + DATA_KEY$2;
var DATA_API_KEY$2 = '.data-api';
- var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
-
- var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
-
+ var ARROW_LEFT_KEY = 'ArrowLeft';
+ var ARROW_RIGHT_KEY = 'ArrowRight';
var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
var SWIPE_THRESHOLD = 40;
@@ -1285,7 +1255,7 @@
this._element = element;
this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
- this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);
+ this._pointerEvent = Boolean(window.PointerEvent);
this._addEventListeners();
@@ -1389,7 +1359,7 @@
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default, {}, config);
+ config = _objectSpread2(_objectSpread2({}, Default), config);
typeCheckConfig(NAME$2, config, DefaultType);
return config;
};
@@ -1517,13 +1487,13 @@
return;
}
- switch (event.which) {
- case ARROW_LEFT_KEYCODE:
+ switch (event.key) {
+ case ARROW_LEFT_KEY:
event.preventDefault();
this.prev();
break;
- case ARROW_RIGHT_KEYCODE:
+ case ARROW_RIGHT_KEY:
event.preventDefault();
this.next();
break;
@@ -1648,12 +1618,9 @@
var transitionDuration = getTransitionDurationFromElement(activeElement);
EventHandler.one(activeElement, TRANSITION_END, function () {
- nextElement.classList.remove(directionalClassName);
- nextElement.classList.remove(orderClassName);
+ nextElement.classList.remove(directionalClassName, orderClassName);
nextElement.classList.add(CLASS_NAME_ACTIVE$1);
- activeElement.classList.remove(CLASS_NAME_ACTIVE$1);
- activeElement.classList.remove(orderClassName);
- activeElement.classList.remove(directionalClassName);
+ activeElement.classList.remove(CLASS_NAME_ACTIVE$1, orderClassName, directionalClassName);
_this4._isSliding = false;
setTimeout(function () {
EventHandler.trigger(_this4._element, EVENT_SLID, {
@@ -1686,10 +1653,10 @@
Carousel.carouselInterface = function carouselInterface(element, config) {
var data = Data.getData(element, DATA_KEY$2);
- var _config = _objectSpread2({}, Default, {}, Manipulator.getDataAttributes(element));
+ var _config = _objectSpread2(_objectSpread2({}, Default), Manipulator.getDataAttributes(element));
if (typeof config === 'object') {
- _config = _objectSpread2({}, _config, {}, config);
+ _config = _objectSpread2(_objectSpread2({}, _config), config);
}
var action = typeof config === 'string' ? config : _config.slide;
@@ -1725,7 +1692,7 @@
return;
}
- var config = _objectSpread2({}, Manipulator.getDataAttributes(target), {}, Manipulator.getDataAttributes(this));
+ var config = _objectSpread2(_objectSpread2({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this));
var slideIndex = this.getAttribute('data-slide-to');
@@ -1956,9 +1923,7 @@
var complete = function complete() {
_this._element.classList.remove(CLASS_NAME_COLLAPSING);
- _this._element.classList.add(CLASS_NAME_COLLAPSE);
-
- _this._element.classList.add(CLASS_NAME_SHOW);
+ _this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
_this._element.style[dimension] = '';
@@ -1995,9 +1960,7 @@
this._element.classList.add(CLASS_NAME_COLLAPSING);
- this._element.classList.remove(CLASS_NAME_COLLAPSE);
-
- this._element.classList.remove(CLASS_NAME_SHOW);
+ this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
var triggerArrayLength = this._triggerArray.length;
@@ -2046,7 +2009,7 @@
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default$1, {}, config);
+ config = _objectSpread2(_objectSpread2({}, Default$1), config);
config.toggle = Boolean(config.toggle); // Coerce string values
typeCheckConfig(NAME$3, config, DefaultType$1);
@@ -2104,9 +2067,9 @@
Collapse.collapseInterface = function collapseInterface(element, config) {
var data = Data.getData(element, DATA_KEY$3);
- var _config = _objectSpread2({}, Default$1, {}, Manipulator.getDataAttributes(element), {}, typeof config === 'object' && config ? config : {});
+ var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$1), Manipulator.getDataAttributes(element)), typeof config === 'object' && config ? config : {});
- if (!data && _config.toggle && /show|hide/.test(config)) {
+ if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
_config.toggle = false;
}
@@ -2214,19 +2177,14 @@
var DATA_KEY$4 = 'bs.dropdown';
var EVENT_KEY$4 = "." + DATA_KEY$4;
var DATA_API_KEY$4 = '.data-api';
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
-
- var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
-
- var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
-
- var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
-
- var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
-
- var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
-
- var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
+ var ESCAPE_KEY = 'Escape';
+ var SPACE_KEY = 'Space';
+ var TAB_KEY = 'Tab';
+ var ARROW_UP_KEY = 'ArrowUp';
+ var ARROW_DOWN_KEY = 'ArrowDown';
+ var RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button
+
+ var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEY + "|" + ARROW_DOWN_KEY + "|" + ESCAPE_KEY);
var EVENT_HIDE$1 = "hide" + EVENT_KEY$4;
var EVENT_HIDDEN$1 = "hidden" + EVENT_KEY$4;
var EVENT_SHOW$1 = "show" + EVENT_KEY$4;
@@ -2356,7 +2314,7 @@
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
- if ('ontouchstart' in document.documentElement && !SelectorEngine.closest(parent, SELECTOR_NAVBAR_NAV)) {
+ if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {
var _ref;
(_ref = []).concat.apply(_ref, document.body.children).forEach(function (elem) {
@@ -2431,7 +2389,7 @@
};
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, this.constructor.Default, {}, Manipulator.getDataAttributes(this._element), {}, config);
+ config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), Manipulator.getDataAttributes(this._element)), config);
typeCheckConfig(NAME$4, config, this.constructor.DefaultType);
return config;
};
@@ -2462,7 +2420,7 @@
};
_proto._detectNavbar = function _detectNavbar() {
- return Boolean(SelectorEngine.closest(this._element, "." + CLASS_NAME_NAVBAR));
+ return Boolean(this._element.closest("." + CLASS_NAME_NAVBAR));
};
_proto._getOffset = function _getOffset() {
@@ -2472,7 +2430,7 @@
if (typeof this._config.offset === 'function') {
offset.fn = function (data) {
- data.offsets = _objectSpread2({}, data.offsets, {}, _this2._config.offset(data.offsets, _this2._element) || {});
+ data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this2._config.offset(data.offsets, _this2._element) || {});
return data;
};
} else {
@@ -2502,7 +2460,7 @@
};
}
- return _objectSpread2({}, popperConfig, {}, this._config.popperConfig);
+ return _objectSpread2(_objectSpread2({}, popperConfig), this._config.popperConfig);
} // Static
;
@@ -2531,7 +2489,7 @@
};
Dropdown.clearMenus = function clearMenus(event) {
- if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
+ if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) {
return;
}
@@ -2558,7 +2516,7 @@
continue;
}
- if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && dropdownMenu.contains(event.target)) {
+ if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.key === TAB_KEY) && dropdownMenu.contains(event.target)) {
continue;
}
@@ -2602,7 +2560,7 @@
// - If key is other than escape
// - If key is not up or down => not a dropdown command
// - If trigger inside the menu => not a dropdown command
- if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || SelectorEngine.closest(event.target, SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.which)) {
+ if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) {
return;
}
@@ -2616,14 +2574,14 @@
var parent = Dropdown.getParentFromElement(this);
var isActive = this.classList.contains(CLASS_NAME_SHOW$1);
- if (event.which === ESCAPE_KEYCODE) {
+ if (event.key === ESCAPE_KEY) {
var button = this.matches(SELECTOR_DATA_TOGGLE$2) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE$2)[0];
button.focus();
Dropdown.clearMenus();
return;
}
- if (!isActive || event.which === SPACE_KEYCODE) {
+ if (!isActive || event.key === SPACE_KEY) {
Dropdown.clearMenus();
return;
}
@@ -2634,18 +2592,20 @@
return;
}
- var index = items.indexOf(event.target) || 0;
+ var index = items.indexOf(event.target);
- if (event.which === ARROW_UP_KEYCODE && index > 0) {
+ if (event.key === ARROW_UP_KEY && index > 0) {
// Up
index--;
}
- if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
+ if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
// Down
index++;
- }
+ } // index is -1 if the first keydown is an ArrowUp
+
+ index = index === -1 ? 0 : index;
items[index].focus();
};
@@ -2723,8 +2683,7 @@
var DATA_KEY$5 = 'bs.modal';
var EVENT_KEY$5 = "." + DATA_KEY$5;
var DATA_API_KEY$5 = '.data-api';
- var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key
-
+ var ESCAPE_KEY$1 = 'Escape';
var Default$3 = {
backdrop: true,
keyboard: true,
@@ -2749,7 +2708,6 @@
var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY$5;
var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY$5;
var EVENT_CLICK_DATA_API$5 = "click" + EVENT_KEY$5 + DATA_API_KEY$5;
- var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';
var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
var CLASS_NAME_BACKDROP = 'modal-backdrop';
var CLASS_NAME_OPEN = 'modal-open';
@@ -2913,7 +2871,7 @@
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default$3, {}, config);
+ config = _objectSpread2(_objectSpread2({}, Default$3), config);
typeCheckConfig(NAME$5, config, DefaultType$3);
return config;
};
@@ -2936,10 +2894,10 @@
this._element.setAttribute('aria-modal', true);
- if (this._dialog.classList.contains(CLASS_NAME_SCROLLABLE) && modalBody) {
+ this._element.scrollTop = 0;
+
+ if (modalBody) {
modalBody.scrollTop = 0;
- } else {
- this._element.scrollTop = 0;
}
if (transition) {
@@ -2989,11 +2947,11 @@
if (this._isShown) {
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {
- if (_this5._config.keyboard && event.which === ESCAPE_KEYCODE$1) {
+ if (_this5._config.keyboard && event.key === ESCAPE_KEY$1) {
event.preventDefault();
_this5.hide();
- } else if (!_this5._config.keyboard && event.which === ESCAPE_KEYCODE$1) {
+ } else if (!_this5._config.keyboard && event.key === ESCAPE_KEY$1) {
_this5._triggerBackdropTransition();
}
});
@@ -3151,7 +3109,7 @@
_proto._checkScrollbar = function _checkScrollbar() {
var rect = document.body.getBoundingClientRect();
- this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
+ this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
this._scrollbarWidth = this._getScrollbarWidth();
};
@@ -3230,7 +3188,7 @@
return this.each(function () {
var data = Data.getData(this, DATA_KEY$5);
- var _config = _objectSpread2({}, Default$3, {}, Manipulator.getDataAttributes(this), {}, typeof config === 'object' && config ? config : {});
+ var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$3), Manipulator.getDataAttributes(this)), typeof config === 'object' && config ? config : {});
if (!data) {
data = new Modal(this, _config);
@@ -3297,7 +3255,7 @@
var data = Data.getData(target, DATA_KEY$5);
if (!data) {
- var config = _objectSpread2({}, Manipulator.getDataAttributes(target), {}, Manipulator.getDataAttributes(this));
+ var config = _objectSpread2(_objectSpread2({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this));
data = new Modal(target, config);
}
@@ -3581,11 +3539,11 @@
if (event) {
var dataKey = this.constructor.DATA_KEY;
- var context = Data.getData(event.delegateTarget, dataKey);
+ var context = Data.getData(event.target, dataKey);
if (!context) {
- context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
- Data.setData(event.delegateTarget, dataKey, context);
+ context = new this.constructor(event.target, this._getDelegateConfig());
+ Data.setData(event.target, dataKey, context);
}
context._activeTrigger.click = !context._activeTrigger.click;
@@ -3610,7 +3568,7 @@
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, "." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
+ EventHandler.off(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
if (this.tip) {
this.tip.parentNode.removeChild(this.tip);
@@ -3786,8 +3744,7 @@
_proto.setContent = function setContent() {
var tip = this.getTipElement();
this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle());
- tip.classList.remove(CLASS_NAME_FADE$1);
- tip.classList.remove(CLASS_NAME_SHOW$3);
+ tip.classList.remove(CLASS_NAME_FADE$1, CLASS_NAME_SHOW$3);
};
_proto.setElementContent = function setElementContent(element, content) {
@@ -3807,7 +3764,7 @@
element.appendChild(content);
}
} else {
- element.innerText = content.textContent;
+ element.textContent = content.textContent;
}
return;
@@ -3820,7 +3777,7 @@
element.innerHTML = content;
} else {
- element.innerText = content;
+ element.textContent = content;
}
};
@@ -3861,7 +3818,7 @@
return _this3._handlePopperPlacementChange(data);
}
};
- return _objectSpread2({}, defaultBsConfig, {}, this.config.popperConfig);
+ return _objectSpread2(_objectSpread2({}, defaultBsConfig), this.config.popperConfig);
};
_proto._addAttachmentClass = function _addAttachmentClass(attachment) {
@@ -3875,7 +3832,7 @@
if (typeof this.config.offset === 'function') {
offset.fn = function (data) {
- data.offsets = _objectSpread2({}, data.offsets, {}, _this4.config.offset(data.offsets, _this4.element) || {});
+ data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this4.config.offset(data.offsets, _this4.element) || {});
return data;
};
} else {
@@ -3928,10 +3885,10 @@
}
};
- EventHandler.on(SelectorEngine.closest(this.element, "." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
+ EventHandler.on(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
if (this.config.selector) {
- this.config = _objectSpread2({}, this.config, {
+ this.config = _objectSpread2(_objectSpread2({}, this.config), {}, {
trigger: 'manual',
selector: ''
});
@@ -3951,11 +3908,11 @@
_proto._enter = function _enter(event, context) {
var dataKey = this.constructor.DATA_KEY;
- context = context || Data.getData(event.delegateTarget, dataKey);
+ context = context || Data.getData(event.target, dataKey);
if (!context) {
- context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
- Data.setData(event.delegateTarget, dataKey, context);
+ context = new this.constructor(event.target, this._getDelegateConfig());
+ Data.setData(event.target, dataKey, context);
}
if (event) {
@@ -3984,11 +3941,11 @@
_proto._leave = function _leave(event, context) {
var dataKey = this.constructor.DATA_KEY;
- context = context || Data.getData(event.delegateTarget, dataKey);
+ context = context || Data.getData(event.target, dataKey);
if (!context) {
- context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
- Data.setData(event.delegateTarget, dataKey, context);
+ context = new this.constructor(event.target, this._getDelegateConfig());
+ Data.setData(event.target, dataKey, context);
}
if (event) {
@@ -4036,7 +3993,7 @@
config.container = config.container[0];
}
- config = _objectSpread2({}, this.constructor.Default, {}, dataAttributes, {}, typeof config === 'object' && config ? config : {});
+ config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), dataAttributes), typeof config === 'object' && config ? config : {});
if (typeof config.delay === 'number') {
config.delay = {
@@ -4216,14 +4173,14 @@
var CLASS_PREFIX$1 = 'bs-popover';
var BSCLS_PREFIX_REGEX$1 = new RegExp("(^|\\s)" + CLASS_PREFIX$1 + "\\S+", 'g');
- var Default$5 = _objectSpread2({}, Tooltip.Default, {
+ var Default$5 = _objectSpread2(_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 = _objectSpread2({}, Tooltip.DefaultType, {
+ var DefaultType$5 = _objectSpread2(_objectSpread2({}, Tooltip.DefaultType), {}, {
content: '(string|element|function)'
});
@@ -4275,8 +4232,7 @@
}
this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content);
- tip.classList.remove(CLASS_NAME_FADE$2);
- tip.classList.remove(CLASS_NAME_SHOW$4);
+ tip.classList.remove(CLASS_NAME_FADE$2, CLASS_NAME_SHOW$4);
};
_proto._addAttachmentClass = function _addAttachmentClass(attachment) {
@@ -4512,9 +4468,9 @@
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default$6, {}, typeof config === 'object' && config ? config : {});
+ config = _objectSpread2(_objectSpread2({}, Default$6), typeof config === 'object' && config ? config : {});
- if (typeof config.target !== 'string') {
+ if (typeof config.target !== 'string' && isElement(config.target)) {
var id = config.target.id;
if (!id) {
@@ -4570,9 +4526,7 @@
return;
}
- var offsetLength = this._offsets.length;
-
- for (var i = offsetLength; i--;) {
+ for (var i = this._offsets.length; i--;) {
var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
if (isActiveTarget) {
@@ -4593,7 +4547,7 @@
var link = SelectorEngine.findOne(queries.join(','));
if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
- SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, SelectorEngine.closest(link, SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$2);
+ SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE$2);
link.classList.add(CLASS_NAME_ACTIVE$2);
} else {
// Set triggered link as active
@@ -4750,7 +4704,8 @@
var previous;
var target = getElementFromSelector(this._element);
- var listElement = SelectorEngine.closest(this._element, SELECTOR_NAV_LIST_GROUP$1);
+
+ var listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP$1);
if (listElement) {
var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE$2;
@@ -4846,7 +4801,7 @@
}
if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {
- var dropdownElement = SelectorEngine.closest(element, SELECTOR_DROPDOWN$1);
+ var dropdownElement = element.closest(SELECTOR_DROPDOWN$1);
if (dropdownElement) {
SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE$1).forEach(function (dropdown) {
@@ -5062,7 +5017,7 @@
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default$7, {}, Manipulator.getDataAttributes(this._element), {}, typeof config === 'object' && config ? config : {});
+ config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default$7), Manipulator.getDataAttributes(this._element)), typeof config === 'object' && config ? config : {});
typeCheckConfig(NAME$a, config, this.constructor.DefaultType);
return config;
};
diff --git a/dist/js/bootstrap.js.map b/dist/js/bootstrap.js.map
index 90b5a0c243..66d81e45ed 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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = 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() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\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 element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n 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 isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\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 find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('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\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (_) {\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 find,\n findOne,\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 { getjQuery } from '../util/index'\nimport { defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst $ = getjQuery()\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.slice(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 && $) {\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 = new CustomEvent(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 } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n return [].concat(...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 = [].concat(...element.children)\n\n return children.filter(child => child.matches(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 element.closest(selector)\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\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_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\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 let parent = getElementFromSelector(element)\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif ($) {\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 { getjQuery } 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 CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"buttons\"]'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_BLUR_DATA_API = `blur${EVENT_KEY}${DATA_API_KEY}`\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 && input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains(CLASS_NAME_DISABLED) ||\n rootElement.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n input.checked = !this._element.classList.contains(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_FOCUS)\n }\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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'\n\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = 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 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(CLASS_NAME_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 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(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_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 = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_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 target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_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 = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\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_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = 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(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = 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(CLASS_NAME_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(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_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(WIDTH)\n return hasWidth ? WIDTH : 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 = `${SELECTOR_DATA_TOGGLE}[data-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\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(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_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 = 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getElementFromSelector,\n isElement,\n isVisible,\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'\n\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)\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n 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(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_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(this._element, 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 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(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !SelectorEngine.closest(parent, SELECTOR_NAVBAR_NAV)) {\n [].concat(...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, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_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 if (this._popper) {\n this._popper.destroy()\n }\n\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_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) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\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 return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = PLACEMENT_TOP\n if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_TOPEND\n }\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, `.${CLASS_NAME_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 {\n ...popperConfig,\n ...this._config.popperConfig\n }\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 = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = 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 (!toggles[i].classList.contains(CLASS_NAME_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 dropdownMenu.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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || 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(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.which === ESCAPE_KEYCODE) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.which === SPACE_KEYCODE) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent)\n .filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target) || 0\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 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\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(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.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(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (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) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else {\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(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n 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 this._triggerBackdropTransition()\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_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(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_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 _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._element)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\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 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 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(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n 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 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 = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.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 target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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\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,[\\d+/a-z]+=*$/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 SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\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', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\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 = [].concat(...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 = [].concat(...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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\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 popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"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 popperConfig: null\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 CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.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(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n 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, `.${CLASS_NAME_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) {\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(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n 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, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_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 [].concat(...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 === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_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 !== HOVER_STATE_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(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...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(CLASS_NAME_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(CLASS_NAME_FADE)\n tip.classList.remove(CLASS_NAME_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 _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${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 return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\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, `.${CLASS_NAME_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(CLASS_NAME_SHOW) ||\n context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || 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 = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = 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 > 0) {\n tabClass.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(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 { getjQuery } 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 Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\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 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(CLASS_NAME_FADE)\n tip.classList.remove(CLASS_NAME_SHOW)\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\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 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getSelectorFromElement,\n getUID,\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_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} .${CLASS_NAME_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 METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = 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(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(SELECTOR_DROPDOWN_TOGGLE, SelectorEngine.closest(link, SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = 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 SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\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_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\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(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = SelectorEngine.closest(this._element, SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = 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 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\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_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n 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(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n 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(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_HIDE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_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(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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","toType","obj","undefined","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","find","Element","prototype","querySelectorAll","findOne","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","scopeSelectorRegex","supportScopeQuery","_","hasId","Boolean","nodeList","replace","removeAttribute","matches","$","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","slice","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","NODE_TEXT","SelectorEngine","concat","findFn","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","previous","previousElementSibling","next","nextElementSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASSNAME_ALERT","CLASSNAME_FADE","CLASSNAME_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","CLASS_NAME_ACTIVE","CLASS_NAME_BUTTON","CLASS_NAME_DISABLED","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLE","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_FOCUS_DATA_API","EVENT_BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","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","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","_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","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_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","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_NAVBAR","CLASS_NAME_POSITION_STATIC","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","flip","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","clearMenus","getParentFromElement","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","modalTransitionDuration","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","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","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_MODAL","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","defaultBsConfig","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_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","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","CLASS_NAME_HIDE","CLASS_NAME_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/alert.js","../../js/src/dom/selector-engine.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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = 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() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\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 element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n 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 isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\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 find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('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\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (_) {\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 find,\n findOne,\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 { getjQuery } from '../util/index'\nimport { defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst $ = getjQuery()\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\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 bootstrapHandler(element, fn) {\n return function handler(event) {\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 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.slice(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 && $) {\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 = new CustomEvent(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): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\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_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\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 return getElementFromSelector(element) || element.closest(`.${CLASSNAME_ALERT}`)\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif ($) {\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): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n return [].concat(...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 = [].concat(...element.children)\n\n return children.filter(child => child.matches(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 prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n }\n}\n\nexport default SelectorEngine\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 { getjQuery } 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 CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"buttons\"]'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_BLUR_DATA_API = `blur${EVENT_KEY}${DATA_API_KEY}`\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 = this._element.closest(SELECTOR_DATA_TOGGLE)\n\n if (rootElement) {\n const input = SelectorEngine.findOne(SELECTOR_INPUT, this._element)\n\n if (input && input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains(CLASS_NAME_DISABLED) ||\n rootElement.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n input.checked = !this._element.classList.contains(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(CLASS_NAME_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 const button = event.target.closest(SELECTOR_BUTTON)\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 = event.target.closest(SELECTOR_BUTTON)\n\n if (button) {\n button.classList.add(CLASS_NAME_FOCUS)\n }\n})\n\nEventHandler.on(document, EVENT_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = event.target.closest(SELECTOR_BUTTON)\n\n if (button) {\n button.classList.remove(CLASS_NAME_FOCUS)\n }\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\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 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(CLASS_NAME_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.key) {\n case ARROW_LEFT_KEY:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEY:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n 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(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_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 = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_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(CLASS_NAME_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, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, 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(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_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 target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_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 = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\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_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = 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(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = 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(CLASS_NAME_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(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_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(WIDTH)\n return hasWidth ? WIDTH : 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 = `${SELECTOR_DATA_TOGGLE}[data-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\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(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_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 && typeof config === 'string' && /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 = 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getElementFromSelector,\n isElement,\n isVisible,\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'\n\nconst ESCAPE_KEY = 'Escape'\nconst SPACE_KEY = 'Space'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n 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(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_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(this._element, 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 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(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...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, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_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 if (this._popper) {\n this._popper.destroy()\n }\n\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_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) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\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 return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = PLACEMENT_TOP\n if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_TOPEND\n }\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(this._element.closest(`.${CLASS_NAME_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 {\n ...popperConfig,\n ...this._config.popperConfig\n }\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.button === RIGHT_MOUSE_BUTTON ||\n (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = 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 (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && ((event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName)) ||\n (event.type === 'keyup' && event.key === TAB_KEY)) &&\n dropdownMenu.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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || 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.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent)\n .filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.key === ARROW_UP_KEY && index > 0) { // Up\n index--\n }\n\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) { // Down\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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_KEY = 'Escape'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.scrollTop = 0\n\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (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) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n 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 this._triggerBackdropTransition()\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_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(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_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 _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._element)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\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 = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n 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 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(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n 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 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 = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.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 target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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\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,[\\d+/a-z]+=*$/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 SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\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', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\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 = [].concat(...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 = [].concat(...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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\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 popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"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 popperConfig: null\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 CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.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.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, 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(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(this.element.closest(`.${CLASS_NAME_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) {\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(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n 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, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_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 [].concat(...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 === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_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 !== HOVER_STATE_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(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...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(CLASS_NAME_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(CLASS_NAME_FADE, CLASS_NAME_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.textContent = 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.textContent = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${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 return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\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(this.element.closest(`.${CLASS_NAME_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.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, 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(CLASS_NAME_SHOW) ||\n context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = 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 > 0) {\n tabClass.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(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 { getjQuery } 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 Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\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 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(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\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 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getSelectorFromElement,\n getUID,\n isElement,\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_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} .${CLASS_NAME_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 METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = 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' && isElement(config.target)) {\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 for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.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(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = 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 SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\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_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\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(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = 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 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\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_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n 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(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n 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(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_HIDE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_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(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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","toType","obj","undefined","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","find","Element","prototype","querySelectorAll","findOne","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","scopeSelectorRegex","supportScopeQuery","_","hasId","Boolean","nodeList","replace","removeAttribute","matches","$","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","bootstrapHandler","fn","handler","event","oneOff","EventHandler","off","type","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","slice","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASSNAME_ALERT","CLASSNAME_FADE","CLASSNAME_SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","closest","classList","remove","contains","_destroyElement","removeChild","jQueryInterface","each","handleDismiss","alertInstance","getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","NODE_TEXT","SelectorEngine","concat","findFn","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","previous","previousElementSibling","next","nextElementSibling","CLASS_NAME_ACTIVE","CLASS_NAME_DISABLED","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLE","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_FOCUS_DATA_API","EVENT_BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_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","parent","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_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_KEY","SPACE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","REGEXP_KEYDOWN","EVENT_CLICK","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_NAVBAR","CLASS_NAME_POSITION_STATIC","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","flip","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","clearMenus","getParentFromElement","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","EVENT_HIDE_PREVENTED","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","modalTransitionDuration","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","round","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","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","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_MODAL","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","_addAttachmentClass","_getContainer","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","defaultBsConfig","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","_getContent","method","EVENT_ACTIVATE","EVENT_SCROLL","CLASS_NAME_DROPDOWN_ITEM","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_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","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","CLASS_NAME_DROPDOWN_MENU","SELECTOR_ACTIVE_UL","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","CLASS_NAME_HIDE","CLASS_NAME_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 29e43c6195..ed08ed6fe1 100644
--- a/dist/js/bootstrap.min.js
+++ b/dist/js/bootstrap.min.js
@@ -3,5 +3,5 @@
* Copyright 2011-2020 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,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 s(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?o(Object(n),!0).forEach((function(e){i(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var r,a,l,c,u=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():null}return e},f=function(t){var e=h(t);return e&&document.querySelector(e)?e:null},d=function(t){var e=h(t);return e?document.querySelector(e):null},g=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,o=parseFloat(n),s=parseFloat(i);return o||s?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},p=function(t){t.dispatchEvent(new Event("transitionend"))},m=function(t){return(t[0]||t).nodeType},_=function(t,e){var n=!1,i=e+5;t.addEventListener("transitionend",(function e(){n=!0,t.removeEventListener("transitionend",e)})),setTimeout((function(){n||p(t)}),i)},v=function(t,e,n){Object.keys(n).forEach((function(i){var o,s=n[i],r=e[i],a=r&&m(r)?"element":null==(o=r)?""+o:{}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+s+'".')}))},b=function(t){if(!t)return!1;if(t.style&&t.parentNode&&t.parentNode.style){var e=getComputedStyle(t),n=getComputedStyle(t.parentNode);return"none"!==e.display&&"none"!==n.display&&"hidden"!==e.visibility}return!1},y=function(){return function(){}},w=function(t){return t.offsetHeight},E=function(){var t=window.jQuery;return t&&!document.body.hasAttribute("data-no-jquery")?t:null},T=(r={},a=1,{set:function(t,e,n){void 0===t.key&&(t.key={key:e,id:a},a++),r[t.key.id]=n},get:function(t,e){if(!t||void 0===t.key)return null;var n=t.key;return n.key===e?r[n.id]:null},delete:function(t,e){if(void 0!==t.key){var n=t.key;n.key===e&&(delete r[n.id],delete t.key)}}}),L=function(t,e,n){T.set(t,e,n)},k=function(t,e){return T.get(t,e)},C=function(t,e){T.delete(t,e)},A=Element.prototype.querySelectorAll,S=Element.prototype.querySelector,O=(l=new CustomEvent("Bootstrap",{cancelable:!0}),(c=document.createElement("div")).addEventListener("Bootstrap",(function(){return null})),l.preventDefault(),c.dispatchEvent(l),l.defaultPrevented),D=/:scope\b/;(function(){var t=document.createElement("div");try{t.querySelectorAll(":scope *")}catch(t){return!1}return!0})()||(A=function(t){if(!D.test(t))return this.querySelectorAll(t);var e=Boolean(this.id);e||(this.id=u("scope"));var n=null;try{t=t.replace(D,"#"+this.id),n=this.querySelectorAll(t)}finally{e||this.removeAttribute("id")}return n},S=function(t){if(!D.test(t))return this.querySelector(t);var e=A.call(this,t);return void 0!==e[0]?e[0]:null});var I=E(),N=/[^.]*(?=\..*)\.|.*/,j=/\..*/,P=/^key/,x=/::\d+$/,R={},H=1,B={mouseenter:"mouseover",mouseleave:"mouseout"},M=["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 Q(t,e){return e&&e+"::"+H++||t.uidEvent||H++}function U(t){var e=Q(t);return t.uidEvent=e,R[e]=R[e]||{},R[e]}function F(t,e){null===t.which&&P.test(t.type)&&(t.which=null===t.charCode?t.keyCode:t.charCode),t.delegateTarget=e}function W(t,e,n){void 0===n&&(n=null);for(var i=Object.keys(t),o=0,s=i.length;o<s;o++){var r=t[i[o]];if(r.originalHandler===e&&r.delegationSelector===n)return r}return null}function V(t,e,n){var i="string"==typeof e,o=i?n:e,s=t.replace(j,""),r=B[s];return r&&(s=r),M.indexOf(s)>-1||(s=t),[i,o,s]}function q(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var s=V(e,n,i),r=s[0],a=s[1],l=s[2],c=U(t),u=c[l]||(c[l]={}),h=W(u,a,r?n:null);if(h)h.oneOff=h.oneOff&&o;else{var f=Q(a,e.replace(N,"")),d=r?function(t,e,n){return function i(o){for(var s=t.querySelectorAll(e),r=o.target;r&&r!==this;r=r.parentNode)for(var a=s.length;a--;)if(s[a]===r)return F(o,r),i.oneOff&&K.off(t,o.type,n),n.apply(r,[o]);return null}}(t,n,i):function(t,e){return function n(i){return F(i,t),n.oneOff&&K.off(t,i.type,e),e.apply(t,[i])}}(t,n);d.delegationSelector=r?n:null,d.originalHandler=a,d.oneOff=o,d.uidEvent=f,u[f]=d,t.addEventListener(l,d,r)}}}function z(t,e,n,i,o){var s=W(e[n],i,o);s&&(t.removeEventListener(n,s,Boolean(o)),delete e[n][s.uidEvent])}var K={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=V(e,n,i),s=o[0],r=o[1],a=o[2],l=a!==e,c=U(t),u="."===e.charAt(0);if(void 0===r){u&&Object.keys(c).forEach((function(n){!function(t,e,n,i){var o=e[n]||{};Object.keys(o).forEach((function(s){if(s.indexOf(i)>-1){var r=o[s];z(t,e,n,r.originalHandler,r.delegationSelector)}}))}(t,c,n,e.slice(1))}));var h=c[a]||{};Object.keys(h).forEach((function(n){var i=n.replace(x,"");if(!l||e.indexOf(i)>-1){var o=h[n];z(t,c,a,o.originalHandler,o.delegationSelector)}}))}else{if(!c||!c[a])return;z(t,c,a,r,s?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=e.replace(j,""),s=e!==o,r=M.indexOf(o)>-1,a=!0,l=!0,c=!1,u=null;return s&&I&&(i=I.Event(e,n),I(t).trigger(i),a=!i.isPropagationStopped(),l=!i.isImmediatePropagationStopped(),c=i.isDefaultPrevented()),r?(u=document.createEvent("HTMLEvents")).initEvent(o,a,!0):u=new CustomEvent(e,{bubbles:a,cancelable:!0}),void 0!==n&&Object.keys(n).forEach((function(t){Object.defineProperty(u,t,{get:function(){return n[t]}})})),c&&(u.preventDefault(),O||Object.defineProperty(u,"defaultPrevented",{get:function(){return!0}})),l&&t.dispatchEvent(u),u.defaultPrevented&&void 0!==i&&i.preventDefault(),u}},X={matches:function(t,e){return t.matches(e)},find:function(t,e){var n;return void 0===e&&(e=document.documentElement),(n=[]).concat.apply(n,A.call(e,t))},findOne:function(t,e){return void 0===e&&(e=document.documentElement),S.call(e,t)},children:function(t,e){var n,i=(n=[]).concat.apply(n,t.children);return i.filter((function(t){return t.matches(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 t.closest(e)},prev:function(t,e){for(var n=t.previousElementSibling;n;){if(n.matches(e))return[n];n=n.previousElementSibling}return[]},next:function(t,e){for(var n=t.nextElementSibling;n;){if(this.matches(n,e))return[n];n=n.nextElementSibling}return[]}},Y="alert",$=function(){function t(t){this._element=t,this._element&&L(t,"bs.alert",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(){C(this._element,"bs.alert"),this._element=null},e._getRootElement=function(t){var e=d(t);return e||(e=X.closest(t,".alert")),e},e._triggerCloseEvent=function(t){return K.trigger(t,"close.bs.alert")},e._removeElement=function(t){var e=this;if(t.classList.remove("show"),t.classList.contains("fade")){var n=g(t);K.one(t,"transitionend",(function(){return e._destroyElement(t)})),_(t,n)}else this._destroyElement(t)},e._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),K.trigger(t,"closed.bs.alert")},t.jQueryInterface=function(e){return this.each((function(){var n=k(this,"bs.alert");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 k(t,"bs.alert")},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();K.on(document,"click.bs.alert.data-api",'[data-dismiss="alert"]',$.handleDismiss(new $));var G=E();if(G){var Z=G.fn[Y];G.fn[Y]=$.jQueryInterface,G.fn[Y].Constructor=$,G.fn[Y].noConflict=function(){return G.fn[Y]=Z,$.jQueryInterface}}var J=function(){function t(t){this._element=t,L(t,"bs.button",this)}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=X.closest(this._element,'[data-toggle="buttons"]');if(n){var i=X.findOne('input:not([type="hidden"])',this._element);if(i&&"radio"===i.type){if(i.checked&&this._element.classList.contains("active"))t=!1;else{var o=X.findOne(".active",n);o&&o.classList.remove("active")}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains("active"),K.trigger(i,"change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains("active")),t&&this._element.classList.toggle("active")},e.dispose=function(){C(this._element,"bs.button"),this._element=null},t.jQueryInterface=function(e){return this.each((function(){var n=k(this,"bs.button");n||(n=new t(this)),"toggle"===e&&n[e]()}))},t.getInstance=function(t){return k(t,"bs.button")},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();K.on(document,"click.bs.button.data-api",'[data-toggle^="button"]',(function(t){t.preventDefault();var e=t.target;e.classList.contains("btn")||(e=X.closest(e,".btn"));var n=k(e,"bs.button");n||(n=new J(e)),n.toggle()})),K.on(document,"focus.bs.button.data-api",'[data-toggle^="button"]',(function(t){var e=X.closest(t.target,".btn");e&&e.classList.add("focus")})),K.on(document,"blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){var e=X.closest(t.target,".btn");e&&e.classList.remove("focus")}));var tt=E();if(tt){var et=tt.fn.button;tt.fn.button=J.jQueryInterface,tt.fn.button.Constructor=J,tt.fn.button.noConflict=function(){return tt.fn.button=et,J.jQueryInterface}}function nt(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function it(t){return t.replace(/[A-Z]/g,(function(t){return"-"+t.toLowerCase()}))}var ot={setDataAttribute:function(t,e,n){t.setAttribute("data-"+it(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+it(e))},getDataAttributes:function(t){if(!t)return{};var e=s({},t.dataset);return Object.keys(e).forEach((function(t){e[t]=nt(e[t])})),e},getDataAttribute:function(t,e){return nt(t.getAttribute("data-"+it(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))}},st="carousel",rt=".bs.carousel",at={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},lt={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},ct={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=X.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),L(t,"bs.carousel",this)}var e=t.prototype;return e.next=function(){this._isSliding||this._slide("next")},e.nextWhenVisible=function(){!document.hidden&&b(this._element)&&this.next()},e.prev=function(){this._isSliding||this._slide("prev")},e.pause=function(t){t||(this._isPaused=!0),X.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(p(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(".active.carousel-item",this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)K.one(this._element,"slid.bs.carousel",(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?"next":"prev";this._slide(i,this._items[t])}},e.dispose=function(){K.off(this._element,rt),C(this._element,"bs.carousel"),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=s({},at,{},t),v(st,t,lt),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&&K.on(this._element,"keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&(K.on(this._element,"mouseenter.bs.carousel",(function(e){return t.pause(e)})),K.on(this._element,"mouseleave.bs.carousel",(function(e){return t.cycle(e)}))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this,e=function(e){t._pointerEvent&&ct[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&ct[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(".carousel-item img",this._element).forEach((function(t){K.on(t,"dragstart.bs.carousel",(function(t){return t.preventDefault()}))})),this._pointerEvent?(K.on(this._element,"pointerdown.bs.carousel",(function(t){return e(t)})),K.on(this._element,"pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(K.on(this._element,"touchstart.bs.carousel",(function(t){return e(t)})),K.on(this._element,"touchmove.bs.carousel",(function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)})),K.on(this._element,"touchend.bs.carousel",(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?X.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),s=this._items.length-1;if((i&&0===o||n&&o===s)&&!this._config.wrap)return e;var r=(o+("prev"===t?-1:1))%this._items.length;return-1===r?this._items[this._items.length-1]:this._items[r]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(X.findOne(".active.carousel-item",this._element));return K.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n})},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=X.find(".active",this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove("active");var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add("active")}},e._slide=function(t,e){var n,i,o,s=this,r=X.findOne(".active.carousel-item",this._element),a=this._getItemIndex(r),l=e||r&&this._getItemByDirection(t,r),c=this._getItemIndex(l),u=Boolean(this._interval);if("next"===t?(n="carousel-item-left",i="carousel-item-next",o="left"):(n="carousel-item-right",i="carousel-item-prev",o="right"),l&&l.classList.contains("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).defaultPrevented&&r&&l){if(this._isSliding=!0,u&&this.pause(),this._setActiveIndicatorElement(l),this._element.classList.contains("slide")){l.classList.add(i),w(l),r.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 f=g(r);K.one(r,"transitionend",(function(){l.classList.remove(n),l.classList.remove(i),l.classList.add("active"),r.classList.remove("active"),r.classList.remove(i),r.classList.remove(n),s._isSliding=!1,setTimeout((function(){K.trigger(s._element,"slid.bs.carousel",{relatedTarget:l,direction:o,from:a,to:c})}),0)})),_(r,f)}else r.classList.remove("active"),l.classList.add("active"),this._isSliding=!1,K.trigger(this._element,"slid.bs.carousel",{relatedTarget:l,direction:o,from:a,to:c});u&&this.cycle()}},t.carouselInterface=function(e,n){var i=k(e,"bs.carousel"),o=s({},at,{},ot.getDataAttributes(e));"object"==typeof n&&(o=s({},o,{},n));var r="string"==typeof n?n:o.slide;if(i||(i=new t(e,o)),"number"==typeof n)i.to(n);else if("string"==typeof r){if(void 0===i[r])throw new TypeError('No method named "'+r+'"');i[r]()}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=d(this);if(n&&n.classList.contains("carousel")){var i=s({},ot.getDataAttributes(n),{},ot.getDataAttributes(this)),o=this.getAttribute("data-slide-to");o&&(i.interval=!1),t.carouselInterface(n,i),o&&k(n,"bs.carousel").to(o),e.preventDefault()}},t.getInstance=function(t){return k(t,"bs.carousel")},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return at}}]),t}();K.on(document,"click.bs.carousel.data-api","[data-slide], [data-slide-to]",ut.dataApiClickHandler),K.on(window,"load.bs.carousel.data-api",(function(){for(var t=X.find('[data-ride="carousel"]'),e=0,n=t.length;e<n;e++)ut.carouselInterface(t[e],k(t[e],"bs.carousel"))}));var ht=E();if(ht){var ft=ht.fn[st];ht.fn[st]=ut.jQueryInterface,ht.fn[st].Constructor=ut,ht.fn[st].noConflict=function(){return ht.fn[st]=ft,ut.jQueryInterface}}var dt="collapse",gt={toggle:!0,parent:""},pt={toggle:"boolean",parent:"(string|element)"},mt=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('[data-toggle="collapse"]'),i=0,o=n.length;i<o;i++){var s=n[i],r=f(s),a=X.find(r).filter((function(e){return e===t}));null!==r&&a.length&&(this._selector=r,this._triggerArray.push(s))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle(),L(t,"bs.collapse",this)}var e=t.prototype;return e.toggle=function(){this._element.classList.contains("show")?this.hide():this.show()},e.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains("show")){var n,i;this._parent&&0===(n=X.find(".show, .collapsing",this._parent).filter((function(t){return"string"==typeof e._config.parent?t.getAttribute("data-parent")===e._config.parent:t.classList.contains("collapse")}))).length&&(n=null);var o=X.findOne(this._selector);if(n){var s=n.filter((function(t){return o!==t}));if((i=s[0]?k(s[0],"bs.collapse"):null)&&i._isTransitioning)return}if(!K.trigger(this._element,"show.bs.collapse").defaultPrevented){n&&n.forEach((function(e){o!==e&&t.collapseInterface(e,"hide"),i||L(e,"bs.collapse",null)}));var r=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[r]=0,this._triggerArray.length&&this._triggerArray.forEach((function(t){t.classList.remove("collapsed"),t.setAttribute("aria-expanded",!0)})),this.setTransitioning(!0);var a="scroll"+(r[0].toUpperCase()+r.slice(1)),l=g(this._element);K.one(this._element,"transitionend",(function(){e._element.classList.remove("collapsing"),e._element.classList.add("collapse"),e._element.classList.add("show"),e._element.style[r]="",e.setTransitioning(!1),K.trigger(e._element,"shown.bs.collapse")})),_(this._element,l),this._element.style[r]=this._element[a]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains("show")&&!K.trigger(this._element,"hide.bs.collapse").defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",w(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse"),this._element.classList.remove("show");var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],s=d(o);s&&!s.classList.contains("show")&&(o.classList.add("collapsed"),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var r=g(this._element);K.one(this._element,"transitionend",(function(){t.setTransitioning(!1),t._element.classList.remove("collapsing"),t._element.classList.add("collapse"),K.trigger(t._element,"hidden.bs.collapse")})),_(this._element,r)}},e.setTransitioning=function(t){this._isTransitioning=t},e.dispose=function(){C(this._element,"bs.collapse"),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(t){return(t=s({},gt,{},t)).toggle=Boolean(t.toggle),v(dt,t,pt),t},e._getDimension=function(){return this._element.classList.contains("width")?"width":"height"},e._getParent=function(){var t=this,e=this._config.parent;m(e)?void 0===e.jquery&&void 0===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=d(e);t._addAriaAndCollapsedClass(n,[e])})),e},e._addAriaAndCollapsedClass=function(t,e){if(t){var n=t.classList.contains("show");e.length&&e.forEach((function(t){n?t.classList.remove("collapsed"):t.classList.add("collapsed"),t.setAttribute("aria-expanded",n)}))}},t.collapseInterface=function(e,n){var i=k(e,"bs.collapse"),o=s({},gt,{},ot.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(void 0===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 k(t,"bs.collapse")},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return gt}}]),t}();K.on(document,"click.bs.collapse.data-api",'[data-toggle="collapse"]',(function(t){"A"===t.target.tagName&&t.preventDefault();var e=ot.getDataAttributes(this),n=f(this);X.find(n).forEach((function(t){var n,i=k(t,"bs.collapse");i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,mt.collapseInterface(t,n)}))}));var _t=E();if(_t){var vt=_t.fn[dt];_t.fn[dt]=mt.jQueryInterface,_t.fn[dt].Constructor=mt,_t.fn[dt].noConflict=function(){return _t.fn[dt]=vt,mt.jQueryInterface}}var bt="dropdown",yt=new RegExp("38|40|27"),wt={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},Et={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},Tt=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(),L(t,"bs.dropdown",this)}var i=e.prototype;return i.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains("disabled")){var t=this._element.classList.contains("show");e.clearMenus(),t||this.show()}},i.show=function(){if(!(this._element.disabled||this._element.classList.contains("disabled")||this._menu.classList.contains("show"))){var n=e.getParentFromElement(this._element),i={relatedTarget:this._element};if(!K.trigger(this._element,"show.bs.dropdown",i).defaultPrevented){if(!this._inNavbar){if(void 0===t)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var o=this._element;"parent"===this._config.reference?o=n:m(this._config.reference)&&(o=this._config.reference,void 0!==this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&n.classList.add("position-static"),this._popper=new t(o,this._menu,this._getPopperConfig())}var s;if("ontouchstart"in document.documentElement&&!X.closest(n,".navbar-nav"))(s=[]).concat.apply(s,document.body.children).forEach((function(t){return K.on(t,"mouseover",null,(function(){}))}));this._element.focus(),this._element.setAttribute("aria-expanded",!0),ot.toggleClass(this._menu,"show"),ot.toggleClass(this._element,"show"),K.trigger(n,"shown.bs.dropdown",i)}}},i.hide=function(){if(!this._element.disabled&&!this._element.classList.contains("disabled")&&this._menu.classList.contains("show")){var t=e.getParentFromElement(this._element),n={relatedTarget:this._element};K.trigger(t,"hide.bs.dropdown",n).defaultPrevented||(this._popper&&this._popper.destroy(),ot.toggleClass(this._menu,"show"),ot.toggleClass(this._element,"show"),K.trigger(t,"hidden.bs.dropdown",n))}},i.dispose=function(){C(this._element,"bs.dropdown"),K.off(this._element,".bs.dropdown"),this._element=null,this._menu=null,this._popper&&(this._popper.destroy(),this._popper=null)},i.update=function(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.scheduleUpdate()},i._addEventListeners=function(){var t=this;K.on(this._element,"click.bs.dropdown",(function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}))},i._getConfig=function(t){return t=s({},this.constructor.Default,{},ot.getDataAttributes(this._element),{},t),v(bt,t,this.constructor.DefaultType),t},i._getMenuElement=function(){return X.next(this._element,".dropdown-menu")[0]},i._getPlacement=function(){var t=this._element.parentNode,e="bottom-start";return t.classList.contains("dropup")?(e="top-start",this._menu.classList.contains("dropdown-menu-right")&&(e="top-end")):t.classList.contains("dropright")?e="right-start":t.classList.contains("dropleft")?e="left-start":this._menu.classList.contains("dropdown-menu-right")&&(e="bottom-end"),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=s({},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}),s({},t,{},this._config.popperConfig)},e.dropdownInterface=function(t,n){var i=k(t,"bs.dropdown");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||3!==t.which&&("keyup"!==t.type||9===t.which))for(var n=X.find('[data-toggle="dropdown"]'),i=0,o=n.length;i<o;i++){var s=e.getParentFromElement(n[i]),r=k(n[i],"bs.dropdown"),a={relatedTarget:n[i]};if(t&&"click"===t.type&&(a.clickEvent=t),r){var l=r._menu;if(n[i].classList.contains("show"))if(!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&l.contains(t.target)))if(!K.trigger(s,"hide.bs.dropdown",a).defaultPrevented){var c;if("ontouchstart"in document.documentElement)(c=[]).concat.apply(c,document.body.children).forEach((function(t){return K.off(t,"mouseover",null,(function(){}))}));n[i].setAttribute("aria-expanded","false"),r._popper&&r._popper.destroy(),l.classList.remove("show"),n[i].classList.remove("show"),K.trigger(s,"hidden.bs.dropdown",a)}}}},e.getParentFromElement=function(t){return d(t)||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,".dropdown-menu")):!yt.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!this.classList.contains("disabled"))){var n=e.getParentFromElement(this),i=this.classList.contains("show");if(27===t.which)return(this.matches('[data-toggle="dropdown"]')?this:X.prev(this,'[data-toggle="dropdown"]')[0]).focus(),void e.clearMenus();if(i&&32!==t.which){var o=X.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",n).filter(b);if(o.length){var s=o.indexOf(t.target)||0;38===t.which&&s>0&&s--,40===t.which&&s<o.length-1&&s++,o[s].focus()}}else e.clearMenus()}},e.getInstance=function(t){return k(t,"bs.dropdown")},n(e,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return wt}},{key:"DefaultType",get:function(){return Et}}]),e}();K.on(document,"keydown.bs.dropdown.data-api",'[data-toggle="dropdown"]',Tt.dataApiKeydownHandler),K.on(document,"keydown.bs.dropdown.data-api",".dropdown-menu",Tt.dataApiKeydownHandler),K.on(document,"click.bs.dropdown.data-api",Tt.clearMenus),K.on(document,"keyup.bs.dropdown.data-api",Tt.clearMenus),K.on(document,"click.bs.dropdown.data-api",'[data-toggle="dropdown"]',(function(t){t.preventDefault(),t.stopPropagation(),Tt.dropdownInterface(this,"toggle")})),K.on(document,"click.bs.dropdown.data-api",".dropdown form",(function(t){return t.stopPropagation()}));var Lt=E();if(Lt){var kt=Lt.fn[bt];Lt.fn[bt]=Tt.jQueryInterface,Lt.fn[bt].Constructor=Tt,Lt.fn[bt].noConflict=function(){return Lt.fn[bt]=kt,Tt.jQueryInterface}}var Ct={backdrop:!0,keyboard:!0,focus:!0,show:!0},At={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},St=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=X.findOne(".modal-dialog",t),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,L(t,"bs.modal",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("fade")&&(this._isTransitioning=!0);var n=K.trigger(this._element,"show.bs.modal",{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),K.on(this._element,"click.dismiss.bs.modal",'[data-dismiss="modal"]',(function(t){return e.hide(t)})),K.on(this._dialog,"mousedown.dismiss.bs.modal",(function(){K.one(e._element,"mouseup.dismiss.bs.modal",(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)&&!K.trigger(this._element,"hide.bs.modal").defaultPrevented){this._isShown=!1;var n=this._element.classList.contains("fade");if(n&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),K.off(document,"focusin.bs.modal"),this._element.classList.remove("show"),K.off(this._element,"click.dismiss.bs.modal"),K.off(this._dialog,"mousedown.dismiss.bs.modal"),n){var i=g(this._element);K.one(this._element,"transitionend",(function(t){return e._hideModal(t)})),_(this._element,i)}else this._hideModal()}},e.dispose=function(){[window,this._element,this._dialog].forEach((function(t){return K.off(t,".bs.modal")})),K.off(document,"focusin.bs.modal"),C(this._element,"bs.modal"),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=s({},Ct,{},t),v("modal",t,At),t},e._showElement=function(t){var e=this,n=this._element.classList.contains("fade"),i=X.findOne(".modal-body",this._dialog);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("modal-dialog-scrollable")&&i?i.scrollTop=0:this._element.scrollTop=0,n&&w(this._element),this._element.classList.add("show"),this._config.focus&&this._enforceFocus();var o=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,K.trigger(e._element,"shown.bs.modal",{relatedTarget:t})};if(n){var s=g(this._dialog);K.one(this._dialog,"transitionend",o),_(this._dialog,s)}else o()},e._enforceFocus=function(){var t=this;K.off(document,"focusin.bs.modal"),K.on(document,"focusin.bs.modal",(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?K.on(this._element,"keydown.dismiss.bs.modal",(function(e){t._config.keyboard&&27===e.which?(e.preventDefault(),t.hide()):t._config.keyboard||27!==e.which||t._triggerBackdropTransition()})):K.off(this._element,"keydown.dismiss.bs.modal")},e._setResizeEvent=function(){var t=this;this._isShown?K.on(window,"resize.bs.modal",(function(){return t._adjustDialog()})):K.off(window,"resize.bs.modal")},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("modal-open"),t._resetAdjustments(),t._resetScrollbar(),K.trigger(t._element,"hidden.bs.modal")}))},e._removeBackdrop=function(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null},e._showBackdrop=function(t){var e=this,n=this._element.classList.contains("fade")?"fade":"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),K.on(this._element,"click.dismiss.bs.modal",(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&e._triggerBackdropTransition()})),n&&w(this._backdrop),this._backdrop.classList.add("show"),!n)return void t();var i=g(this._backdrop);K.one(this._backdrop,"transitionend",t),_(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove("show");var o=function(){e._removeBackdrop(),t()};if(this._element.classList.contains("fade")){var s=g(this._backdrop);K.one(this._backdrop,"transitionend",o),_(this._backdrop,s)}else o()}else t()},e._triggerBackdropTransition=function(){var t=this;if("static"===this._config.backdrop){if(K.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;this._element.classList.add("modal-static");var e=g(this._element);K.one(this._element,"transitionend",(function(){t._element.classList.remove("modal-static")})),_(this._element,e),this._element.focus()}else this.hide()},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){X.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];ot.setDataAttribute(e,"padding-right",n),e.style.paddingRight=parseFloat(i)+t._scrollbarWidth+"px"})),X.find(".sticky-top").forEach((function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];ot.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"];ot.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add("modal-open")},e._resetScrollbar=function(){X.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(t){var e=ot.getDataAttribute(t,"padding-right");void 0!==e&&(ot.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)})),X.find(".sticky-top").forEach((function(t){var e=ot.getDataAttribute(t,"margin-right");void 0!==e&&(ot.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)}));var t=ot.getDataAttribute(document.body,"padding-right");void 0===t?document.body.style.paddingRight="":(ot.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},e._getScrollbarWidth=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",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=k(this,"bs.modal"),o=s({},Ct,{},ot.getDataAttributes(this),{},"object"==typeof e&&e?e:{});if(i||(i=new t(this,o)),"string"==typeof e){if(void 0===i[e])throw new TypeError('No method named "'+e+'"');i[e](n)}else o.show&&i.show(n)}))},t.getInstance=function(t){return k(t,"bs.modal")},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ct}}]),t}();K.on(document,"click.bs.modal.data-api",'[data-toggle="modal"]',(function(t){var e=this,n=d(this);"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),K.one(n,"show.bs.modal",(function(t){t.defaultPrevented||K.one(n,"hidden.bs.modal",(function(){b(e)&&e.focus()}))}));var i=k(n,"bs.modal");if(!i){var o=s({},ot.getDataAttributes(n),{},ot.getDataAttributes(this));i=new St(n,o)}i.show(this)}));var Ot=E();if(Ot){var Dt=Ot.fn.modal;Ot.fn.modal=St.jQueryInterface,Ot.fn.modal.Constructor=St,Ot.fn.modal.noConflict=function(){return Ot.fn.modal=Dt,St.jQueryInterface}}var It=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Nt=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,jt=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Pt={"*":["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","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function xt(t,e,n){var i;if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var o=(new window.DOMParser).parseFromString(t,"text/html"),s=Object.keys(e),r=(i=[]).concat.apply(i,o.body.querySelectorAll("*")),a=function(t,n){var i,o=r[t],a=o.nodeName.toLowerCase();if(-1===s.indexOf(a))return o.parentNode.removeChild(o),"continue";var l=(i=[]).concat.apply(i,o.attributes),c=[].concat(e["*"]||[],e[a]||[]);l.forEach((function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===It.indexOf(n)||(Nt.test(t.nodeValue)||jt.test(t.nodeValue));for(var i=e.filter((function(t){return t instanceof RegExp})),o=0,s=i.length;o<s;o++)if(i[o].test(n))return!0;return!1})(t,c)||o.removeAttribute(t.nodeName)}))},l=0,c=r.length;l<c;l++)a(l);return o.body.innerHTML}var Rt="tooltip",Ht=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Bt=["sanitize","whiteList","sanitizeFn"],Mt={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",popperConfig:"(null|object)"},Qt={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Ut={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:Pt,popperConfig:null},Ft={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"},Wt=function(){function e(e,n){if(void 0===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(),L(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=k(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),L(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("show"))return void this._leave(null,this);this._enter(null,this)}},i.dispose=function(){clearTimeout(this._timeout),C(this.element,this.constructor.DATA_KEY),K.off(this.element,this.constructor.EVENT_KEY),K.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,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=K.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 s=this.getTipElement(),r=u(this.constructor.NAME);s.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&s.classList.add("fade");var a="function"==typeof this.config.placement?this.config.placement.call(this,s,this.element):this.config.placement,l=this._getAttachment(a);this._addAttachmentClass(l);var c,h=this._getContainer();if(L(s,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||h.appendChild(s),K.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new t(this.element,s,this._getPopperConfig(l)),s.classList.add("show"),"ontouchstart"in document.documentElement)(c=[]).concat.apply(c,document.body.children).forEach((function(t){K.on(t,"mouseover",(function(){}))}));var f=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,K.trigger(e.element,e.constructor.Event.SHOWN),"out"===t&&e._leave(null,e)};if(this.tip.classList.contains("fade")){var d=g(this.tip);K.one(this.tip,"transitionend",f),_(this.tip,d)}else f()}},i.hide=function(){var t=this,e=this.getTipElement(),n=function(){"show"!==t._hoverState&&e.parentNode&&e.parentNode.removeChild(e),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),K.trigger(t.element,t.constructor.Event.HIDDEN),t._popper.destroy()};if(!K.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){var i;if(e.classList.remove("show"),"ontouchstart"in document.documentElement)(i=[]).concat.apply(i,document.body.children).forEach((function(t){return K.off(t,"mouseover",y)}));if(this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this.tip.classList.contains("fade")){var o=g(e);K.one(e,"transitionend",n),_(e,o)}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(X.findOne(".tooltip-inner",t),this.getTitle()),t.classList.remove("fade"),t.classList.remove("show")},i.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&m(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=xt(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._getPopperConfig=function(t){var e=this;return s({},{placement:t,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)}},{},this.config.popperConfig)},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=s({},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:m(this.config.container)?this.config.container:X.findOne(this.config.container)},i._getAttachment=function(t){return Qt[t.toUpperCase()]},i._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(e){if("click"===e)K.on(t.element,t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==e){var n="hover"===e?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i="hover"===e?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;K.on(t.element,n,t.config.selector,(function(e){return t._enter(e)})),K.on(t.element,i,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},K.on(X.closest(this.element,".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=s({},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||k(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),L(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){"show"===e._hoverState&&e.show()}),e.config.delay.show):e.show())},i._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||k(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),L(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){"out"===e._hoverState&&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=ot.getDataAttributes(this.element);return Object.keys(e).forEach((function(t){-1!==Bt.indexOf(t)&&delete e[t]})),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=s({},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()),v(Rt,t,this.constructor.DefaultType),t.sanitize&&(t.template=xt(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(Ht);null!==e&&e.length>0&&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("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},e.jQueryInterface=function(t){return this.each((function(){var n=k(this,"bs.tooltip"),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(t){return k(t,"bs.tooltip")},n(e,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ut}},{key:"NAME",get:function(){return Rt}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return Ft}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Mt}}]),e}(),Vt=E();if(Vt){var qt=Vt.fn[Rt];Vt.fn[Rt]=Wt.jQueryInterface,Vt.fn[Rt].Constructor=Wt,Vt.fn[Rt].noConflict=function(){return Vt.fn[Rt]=qt,Wt.jQueryInterface}}var zt="popover",Kt=new RegExp("(^|\\s)bs-popover\\S+","g"),Xt=s({},Wt.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>'}),Yt=s({},Wt.DefaultType,{content:"(string|element|function)"}),$t={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"},Gt=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 s=o.prototype;return s.isWithContent=function(){return this.getTitle()||this._getContent()},s.setContent=function(){var t=this.getTipElement();this.setElementContent(X.findOne(".popover-header",t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(X.findOne(".popover-body",t),e),t.classList.remove("fade"),t.classList.remove("show")},s._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},s._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},s._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(Kt);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=k(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),L(this,"bs.popover",e)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},o.getInstance=function(t){return k(t,"bs.popover")},n(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Xt}},{key:"NAME",get:function(){return zt}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return $t}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return Yt}}]),o}(Wt),Zt=E();if(Zt){var Jt=Zt.fn[zt];Zt.fn[zt]=Gt.jQueryInterface,Zt.fn[zt].Constructor=Gt,Zt.fn[zt].noConflict=function(){return Zt.fn[zt]=Jt,Gt.jQueryInterface}}var te="scrollspy",ee={offset:10,method:"auto",target:""},ne={offset:"number",method:"string",target:"(string|element)"},ie=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+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,K.on(this._scrollElement,"scroll.bs.scrollspy",(function(t){return n._process(t)})),this.refresh(),this._process(),L(t,"bs.scrollspy",this)}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":"position",n="auto"===this._config.method?e:this._config.method,i="position"===n?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),X.find(this._selector).map((function(t){var e,o=f(t);if(o&&(e=X.findOne(o)),e){var s=e.getBoundingClientRect();if(s.width||s.height)return[ot[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(){C(this._element,"bs.scrollspy"),K.off(this._scrollElement,".bs.scrollspy"),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=s({},ee,{},"object"==typeof t&&t?t:{})).target){var e=t.target.id;e||(e=u(te),t.target.id=e),t.target="#"+e}return v(te,t,ne),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]&&(void 0===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("dropdown-item")?(X.findOne(".dropdown-toggle",X.closest(n,".dropdown")).classList.add("active"),n.classList.add("active")):(n.classList.add("active"),X.parents(n,".nav, .list-group").forEach((function(t){X.prev(t,".nav-link, .list-group-item").forEach((function(t){return t.classList.add("active")})),X.prev(t,".nav-item").forEach((function(t){X.children(t,".nav-link").forEach((function(t){return t.classList.add("active")}))}))}))),K.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})},e._clear=function(){X.find(this._selector).filter((function(t){return t.classList.contains("active")})).forEach((function(t){return t.classList.remove("active")}))},t.jQueryInterface=function(e){return this.each((function(){var n=k(this,"bs.scrollspy");if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t.getInstance=function(t){return k(t,"bs.scrollspy")},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return ee}}]),t}();K.on(window,"load.bs.scrollspy.data-api",(function(){X.find('[data-spy="scroll"]').forEach((function(t){return new ie(t,ot.getDataAttributes(t))}))}));var oe=E();if(oe){var se=oe.fn[te];oe.fn[te]=ie.jQueryInterface,oe.fn[te].Constructor=ie,oe.fn[te].noConflict=function(){return oe.fn[te]=se,ie.jQueryInterface}}var re=function(){function t(t){this._element=t,L(this._element,"bs.tab",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("active")||this._element.classList.contains("disabled"))){var e,n=d(this._element),i=X.closest(this._element,".nav, .list-group");if(i){var o="UL"===i.nodeName||"OL"===i.nodeName?":scope > li > .active":".active";e=(e=X.find(o,i))[e.length-1]}var s=null;if(e&&(s=K.trigger(e,"hide.bs.tab",{relatedTarget:this._element})),!(K.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==s&&s.defaultPrevented)){this._activate(this._element,i);var r=function(){K.trigger(e,"hidden.bs.tab",{relatedTarget:t._element}),K.trigger(t._element,"shown.bs.tab",{relatedTarget:e})};n?this._activate(n,n.parentNode,r):r()}}},e.dispose=function(){C(this._element,"bs.tab"),this._element=null},e._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?X.children(e,".active"):X.find(":scope > li > .active",e))[0],s=n&&o&&o.classList.contains("fade"),r=function(){return i._transitionComplete(t,o,n)};if(o&&s){var a=g(o);o.classList.remove("show"),K.one(o,"transitionend",r),_(o,a)}else r()},e._transitionComplete=function(t,e,n){if(e){e.classList.remove("active");var i=X.findOne(":scope > .dropdown-menu .active",e.parentNode);i&&i.classList.remove("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),w(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&t.parentNode.classList.contains("dropdown-menu"))&&(X.closest(t,".dropdown")&&X.find(".dropdown-toggle").forEach((function(t){return t.classList.add("active")})),t.setAttribute("aria-expanded",!0));n&&n()},t.jQueryInterface=function(e){return this.each((function(){var n=k(this,"bs.tab")||new t(this);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t.getInstance=function(t){return k(t,"bs.tab")},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();K.on(document,"click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),(k(this,"bs.tab")||new re(this)).show()}));var ae=E();if(ae){var le=ae.fn.tab;ae.fn.tab=re.jQueryInterface,ae.fn.tab.Constructor=re,ae.fn.tab.noConflict=function(){return ae.fn.tab=le,re.jQueryInterface}}var ce={animation:"boolean",autohide:"boolean",delay:"number"},ue={animation:!0,autohide:!0,delay:500},he=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),L(t,"bs.toast",this)}var e=t.prototype;return e.show=function(){var t=this;if(!K.trigger(this._element,"show.bs.toast").defaultPrevented){this._config.animation&&this._element.classList.add("fade");var e=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),K.trigger(t._element,"shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),w(this._element),this._element.classList.add("showing"),this._config.animation){var n=g(this._element);K.one(this._element,"transitionend",e),_(this._element,n)}else e()}},e.hide=function(){var t=this;if(this._element.classList.contains("show")&&!K.trigger(this._element,"hide.bs.toast").defaultPrevented){var e=function(){t._element.classList.add("hide"),K.trigger(t._element,"hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var n=g(this._element);K.one(this._element,"transitionend",e),_(this._element,n)}else e()}},e.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains("show")&&this._element.classList.remove("show"),K.off(this._element,"click.dismiss.bs.toast"),C(this._element,"bs.toast"),this._element=null,this._config=null},e._getConfig=function(t){return t=s({},ue,{},ot.getDataAttributes(this._element),{},"object"==typeof t&&t?t:{}),v("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;K.on(this._element,"click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},t.jQueryInterface=function(e){return this.each((function(){var n=k(this,"bs.toast");if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e](this)}}))},t.getInstance=function(t){return k(t,"bs.toast")},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return ce}},{key:"Default",get:function(){return ue}}]),t}(),fe=E();if(fe){var de=fe.fn.toast;fe.fn.toast=he.jQueryInterface,fe.fn.toast.Constructor=he,fe.fn.toast.noConflict=function(){return fe.fn.toast=de,he.jQueryInterface}}return{Alert:$,Button:J,Carousel:ut,Collapse:mt,Dropdown:Tt,Modal:St,Popover:Gt,ScrollSpy:ie,Tab:re,Toast:he,Tooltip:Wt}}));
+!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 s(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?o(Object(n),!0).forEach((function(e){i(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):o(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var r,a,l,c,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():null}return e},h=function(t){var e=f(t);return e&&document.querySelector(e)?e:null},d=function(t){var e=f(t);return e?document.querySelector(e):null},g=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,o=parseFloat(n),s=parseFloat(i);return o||s?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},p=function(t){t.dispatchEvent(new Event("transitionend"))},m=function(t){return(t[0]||t).nodeType},_=function(t,e){var n=!1,i=e+5;t.addEventListener("transitionend",(function e(){n=!0,t.removeEventListener("transitionend",e)})),setTimeout((function(){n||p(t)}),i)},v=function(t,e,n){Object.keys(n).forEach((function(i){var o,s=n[i],r=e[i],a=r&&m(r)?"element":null==(o=r)?""+o:{}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(s).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+s+'".')}))},b=function(t){if(!t)return!1;if(t.style&&t.parentNode&&t.parentNode.style){var e=getComputedStyle(t),n=getComputedStyle(t.parentNode);return"none"!==e.display&&"none"!==n.display&&"hidden"!==e.visibility}return!1},y=function(){return function(){}},w=function(t){return t.offsetHeight},E=function(){var t=window.jQuery;return t&&!document.body.hasAttribute("data-no-jquery")?t:null},k=(r={},a=1,{set:function(t,e,n){void 0===t.key&&(t.key={key:e,id:a},a++),r[t.key.id]=n},get:function(t,e){if(!t||void 0===t.key)return null;var n=t.key;return n.key===e?r[n.id]:null},delete:function(t,e){if(void 0!==t.key){var n=t.key;n.key===e&&(delete r[n.id],delete t.key)}}}),T=function(t,e,n){k.set(t,e,n)},L=function(t,e){return k.get(t,e)},C=function(t,e){k.delete(t,e)},A=Element.prototype.querySelectorAll,S=Element.prototype.querySelector,O=(l=new CustomEvent("Bootstrap",{cancelable:!0}),(c=document.createElement("div")).addEventListener("Bootstrap",(function(){return null})),l.preventDefault(),c.dispatchEvent(l),l.defaultPrevented),D=/:scope\b/;(function(){var t=document.createElement("div");try{t.querySelectorAll(":scope *")}catch(t){return!1}return!0})()||(A=function(t){if(!D.test(t))return this.querySelectorAll(t);var e=Boolean(this.id);e||(this.id=u("scope"));var n=null;try{t=t.replace(D,"#"+this.id),n=this.querySelectorAll(t)}finally{e||this.removeAttribute("id")}return n},S=function(t){if(!D.test(t))return this.querySelector(t);var e=A.call(this,t);return void 0!==e[0]?e[0]:null});var I=E(),N=/[^.]*(?=\..*)\.|.*/,j=/\..*/,P=/::\d+$/,x={},R=1,H={mouseenter:"mouseover",mouseleave:"mouseout"},B=["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 M(t,e){return e&&e+"::"+R++||t.uidEvent||R++}function Q(t){var e=M(t);return t.uidEvent=e,x[e]=x[e]||{},x[e]}function U(t,e,n){void 0===n&&(n=null);for(var i=Object.keys(t),o=0,s=i.length;o<s;o++){var r=t[i[o]];if(r.originalHandler===e&&r.delegationSelector===n)return r}return null}function F(t,e,n){var i="string"==typeof e,o=i?n:e,s=t.replace(j,""),r=H[s];return r&&(s=r),B.indexOf(s)>-1||(s=t),[i,o,s]}function W(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var s=F(e,n,i),r=s[0],a=s[1],l=s[2],c=Q(t),u=c[l]||(c[l]={}),f=U(u,a,r?n:null);if(f)f.oneOff=f.oneOff&&o;else{var h=M(a,e.replace(N,"")),d=r?function(t,e,n){return function i(o){for(var s=t.querySelectorAll(e),r=o.target;r&&r!==this;r=r.parentNode)for(var a=s.length;a--;)if(s[a]===r)return i.oneOff&&q.off(t,o.type,n),n.apply(r,[o]);return null}}(t,n,i):function(t,e){return function n(i){return n.oneOff&&q.off(t,i.type,e),e.apply(t,[i])}}(t,n);d.delegationSelector=r?n:null,d.originalHandler=a,d.oneOff=o,d.uidEvent=h,u[h]=d,t.addEventListener(l,d,r)}}}function V(t,e,n,i,o){var s=U(e[n],i,o);s&&(t.removeEventListener(n,s,Boolean(o)),delete e[n][s.uidEvent])}var q={on:function(t,e,n,i){W(t,e,n,i,!1)},one:function(t,e,n,i){W(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=F(e,n,i),s=o[0],r=o[1],a=o[2],l=a!==e,c=Q(t),u="."===e.charAt(0);if(void 0===r){u&&Object.keys(c).forEach((function(n){!function(t,e,n,i){var o=e[n]||{};Object.keys(o).forEach((function(s){if(s.indexOf(i)>-1){var r=o[s];V(t,e,n,r.originalHandler,r.delegationSelector)}}))}(t,c,n,e.slice(1))}));var f=c[a]||{};Object.keys(f).forEach((function(n){var i=n.replace(P,"");if(!l||e.indexOf(i)>-1){var o=f[n];V(t,c,a,o.originalHandler,o.delegationSelector)}}))}else{if(!c||!c[a])return;V(t,c,a,r,s?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=e.replace(j,""),s=e!==o,r=B.indexOf(o)>-1,a=!0,l=!0,c=!1,u=null;return s&&I&&(i=I.Event(e,n),I(t).trigger(i),a=!i.isPropagationStopped(),l=!i.isImmediatePropagationStopped(),c=i.isDefaultPrevented()),r?(u=document.createEvent("HTMLEvents")).initEvent(o,a,!0):u=new CustomEvent(e,{bubbles:a,cancelable:!0}),void 0!==n&&Object.keys(n).forEach((function(t){Object.defineProperty(u,t,{get:function(){return n[t]}})})),c&&(u.preventDefault(),O||Object.defineProperty(u,"defaultPrevented",{get:function(){return!0}})),l&&t.dispatchEvent(u),u.defaultPrevented&&void 0!==i&&i.preventDefault(),u}},z="alert",K=function(){function t(t){this._element=t,this._element&&T(t,"bs.alert",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(){C(this._element,"bs.alert"),this._element=null},e._getRootElement=function(t){return d(t)||t.closest(".alert")},e._triggerCloseEvent=function(t){return q.trigger(t,"close.bs.alert")},e._removeElement=function(t){var e=this;if(t.classList.remove("show"),t.classList.contains("fade")){var n=g(t);q.one(t,"transitionend",(function(){return e._destroyElement(t)})),_(t,n)}else this._destroyElement(t)},e._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),q.trigger(t,"closed.bs.alert")},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.alert");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 L(t,"bs.alert")},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();q.on(document,"click.bs.alert.data-api",'[data-dismiss="alert"]',K.handleDismiss(new K));var X=E();if(X){var Y=X.fn[z];X.fn[z]=K.jQueryInterface,X.fn[z].Constructor=K,X.fn[z].noConflict=function(){return X.fn[z]=Y,K.jQueryInterface}}var $={matches:function(t,e){return t.matches(e)},find:function(t,e){var n;return void 0===e&&(e=document.documentElement),(n=[]).concat.apply(n,A.call(e,t))},findOne:function(t,e){return void 0===e&&(e=document.documentElement),S.call(e,t)},children:function(t,e){var n,i=(n=[]).concat.apply(n,t.children);return i.filter((function(t){return t.matches(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},prev:function(t,e){for(var n=t.previousElementSibling;n;){if(n.matches(e))return[n];n=n.previousElementSibling}return[]},next:function(t,e){for(var n=t.nextElementSibling;n;){if(this.matches(n,e))return[n];n=n.nextElementSibling}return[]}},G=function(){function t(t){this._element=t,T(t,"bs.button",this)}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=this._element.closest('[data-toggle="buttons"]');if(n){var i=$.findOne('input:not([type="hidden"])',this._element);if(i&&"radio"===i.type){if(i.checked&&this._element.classList.contains("active"))t=!1;else{var o=$.findOne(".active",n);o&&o.classList.remove("active")}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains("active"),q.trigger(i,"change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains("active")),t&&this._element.classList.toggle("active")},e.dispose=function(){C(this._element,"bs.button"),this._element=null},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.button");n||(n=new t(this)),"toggle"===e&&n[e]()}))},t.getInstance=function(t){return L(t,"bs.button")},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();q.on(document,"click.bs.button.data-api",'[data-toggle^="button"]',(function(t){t.preventDefault();var e=t.target.closest(".btn"),n=L(e,"bs.button");n||(n=new G(e)),n.toggle()})),q.on(document,"focus.bs.button.data-api",'[data-toggle^="button"]',(function(t){var e=t.target.closest(".btn");e&&e.classList.add("focus")})),q.on(document,"blur.bs.button.data-api",'[data-toggle^="button"]',(function(t){var e=t.target.closest(".btn");e&&e.classList.remove("focus")}));var Z=E();if(Z){var J=Z.fn.button;Z.fn.button=G.jQueryInterface,Z.fn.button.Constructor=G,Z.fn.button.noConflict=function(){return Z.fn.button=J,G.jQueryInterface}}function tt(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function et(t){return t.replace(/[A-Z]/g,(function(t){return"-"+t.toLowerCase()}))}var nt={setDataAttribute:function(t,e,n){t.setAttribute("data-"+et(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+et(e))},getDataAttributes:function(t){if(!t)return{};var e=s({},t.dataset);return Object.keys(e).forEach((function(t){e[t]=tt(e[t])})),e},getDataAttribute:function(t,e){return tt(t.getAttribute("data-"+et(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))}},it="carousel",ot=".bs.carousel",st={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},rt={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},at={TOUCH:"touch",PEN:"pen"},lt=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=$.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners(),T(t,"bs.carousel",this)}var e=t.prototype;return e.next=function(){this._isSliding||this._slide("next")},e.nextWhenVisible=function(){!document.hidden&&b(this._element)&&this.next()},e.prev=function(){this._isSliding||this._slide("prev")},e.pause=function(t){t||(this._isPaused=!0),$.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(p(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=$.findOne(".active.carousel-item",this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)q.one(this._element,"slid.bs.carousel",(function(){return e.to(t)}));else{if(n===t)return this.pause(),void this.cycle();var i=t>n?"next":"prev";this._slide(i,this._items[t])}},e.dispose=function(){q.off(this._element,ot),C(this._element,"bs.carousel"),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=s(s({},st),t),v(it,t,rt),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&&q.on(this._element,"keydown.bs.carousel",(function(e){return t._keydown(e)})),"hover"===this._config.pause&&(q.on(this._element,"mouseenter.bs.carousel",(function(e){return t.pause(e)})),q.on(this._element,"mouseleave.bs.carousel",(function(e){return t.cycle(e)}))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this,e=function(e){t._pointerEvent&&at[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&at[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))};$.find(".carousel-item img",this._element).forEach((function(t){q.on(t,"dragstart.bs.carousel",(function(t){return t.preventDefault()}))})),this._pointerEvent?(q.on(this._element,"pointerdown.bs.carousel",(function(t){return e(t)})),q.on(this._element,"pointerup.bs.carousel",(function(t){return n(t)})),this._element.classList.add("pointer-event")):(q.on(this._element,"touchstart.bs.carousel",(function(t){return e(t)})),q.on(this._element,"touchmove.bs.carousel",(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,"touchend.bs.carousel",(function(t){return n(t)})))},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.key){case"ArrowLeft":t.preventDefault(),this.prev();break;case"ArrowRight":t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?$.find(".carousel-item",t.parentNode):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n="next"===t,i="prev"===t,o=this._getItemIndex(e),s=this._items.length-1;if((i&&0===o||n&&o===s)&&!this._config.wrap)return e;var r=(o+("prev"===t?-1:1))%this._items.length;return-1===r?this._items[this._items.length-1]:this._items[r]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex($.findOne(".active.carousel-item",this._element));return q.trigger(this._element,"slide.bs.carousel",{relatedTarget:t,direction:e,from:i,to:n})},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=$.find(".active",this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove("active");var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add("active")}},e._slide=function(t,e){var n,i,o,s=this,r=$.findOne(".active.carousel-item",this._element),a=this._getItemIndex(r),l=e||r&&this._getItemByDirection(t,r),c=this._getItemIndex(l),u=Boolean(this._interval);if("next"===t?(n="carousel-item-left",i="carousel-item-next",o="left"):(n="carousel-item-right",i="carousel-item-prev",o="right"),l&&l.classList.contains("active"))this._isSliding=!1;else if(!this._triggerSlideEvent(l,o).defaultPrevented&&r&&l){if(this._isSliding=!0,u&&this.pause(),this._setActiveIndicatorElement(l),this._element.classList.contains("slide")){l.classList.add(i),w(l),r.classList.add(n),l.classList.add(n);var f=parseInt(l.getAttribute("data-interval"),10);f?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=f):this._config.interval=this._config.defaultInterval||this._config.interval;var h=g(r);q.one(r,"transitionend",(function(){l.classList.remove(n,i),l.classList.add("active"),r.classList.remove("active",i,n),s._isSliding=!1,setTimeout((function(){q.trigger(s._element,"slid.bs.carousel",{relatedTarget:l,direction:o,from:a,to:c})}),0)})),_(r,h)}else r.classList.remove("active"),l.classList.add("active"),this._isSliding=!1,q.trigger(this._element,"slid.bs.carousel",{relatedTarget:l,direction:o,from:a,to:c});u&&this.cycle()}},t.carouselInterface=function(e,n){var i=L(e,"bs.carousel"),o=s(s({},st),nt.getDataAttributes(e));"object"==typeof n&&(o=s(s({},o),n));var r="string"==typeof n?n:o.slide;if(i||(i=new t(e,o)),"number"==typeof n)i.to(n);else if("string"==typeof r){if(void 0===i[r])throw new TypeError('No method named "'+r+'"');i[r]()}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=d(this);if(n&&n.classList.contains("carousel")){var i=s(s({},nt.getDataAttributes(n)),nt.getDataAttributes(this)),o=this.getAttribute("data-slide-to");o&&(i.interval=!1),t.carouselInterface(n,i),o&&L(n,"bs.carousel").to(o),e.preventDefault()}},t.getInstance=function(t){return L(t,"bs.carousel")},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return st}}]),t}();q.on(document,"click.bs.carousel.data-api","[data-slide], [data-slide-to]",lt.dataApiClickHandler),q.on(window,"load.bs.carousel.data-api",(function(){for(var t=$.find('[data-ride="carousel"]'),e=0,n=t.length;e<n;e++)lt.carouselInterface(t[e],L(t[e],"bs.carousel"))}));var ct=E();if(ct){var ut=ct.fn[it];ct.fn[it]=lt.jQueryInterface,ct.fn[it].Constructor=lt,ct.fn[it].noConflict=function(){return ct.fn[it]=ut,lt.jQueryInterface}}var ft="collapse",ht={toggle:!0,parent:""},dt={toggle:"boolean",parent:"(string|element)"},gt=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=$.find('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]');for(var n=$.find('[data-toggle="collapse"]'),i=0,o=n.length;i<o;i++){var s=n[i],r=h(s),a=$.find(r).filter((function(e){return e===t}));null!==r&&a.length&&(this._selector=r,this._triggerArray.push(s))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle(),T(t,"bs.collapse",this)}var e=t.prototype;return e.toggle=function(){this._element.classList.contains("show")?this.hide():this.show()},e.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains("show")){var n,i;this._parent&&0===(n=$.find(".show, .collapsing",this._parent).filter((function(t){return"string"==typeof e._config.parent?t.getAttribute("data-parent")===e._config.parent:t.classList.contains("collapse")}))).length&&(n=null);var o=$.findOne(this._selector);if(n){var s=n.filter((function(t){return o!==t}));if((i=s[0]?L(s[0],"bs.collapse"):null)&&i._isTransitioning)return}if(!q.trigger(this._element,"show.bs.collapse").defaultPrevented){n&&n.forEach((function(e){o!==e&&t.collapseInterface(e,"hide"),i||T(e,"bs.collapse",null)}));var r=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[r]=0,this._triggerArray.length&&this._triggerArray.forEach((function(t){t.classList.remove("collapsed"),t.setAttribute("aria-expanded",!0)})),this.setTransitioning(!0);var a="scroll"+(r[0].toUpperCase()+r.slice(1)),l=g(this._element);q.one(this._element,"transitionend",(function(){e._element.classList.remove("collapsing"),e._element.classList.add("collapse","show"),e._element.style[r]="",e.setTransitioning(!1),q.trigger(e._element,"shown.bs.collapse")})),_(this._element,l),this._element.style[r]=this._element[a]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains("show")&&!q.trigger(this._element,"hide.bs.collapse").defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",w(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],s=d(o);s&&!s.classList.contains("show")&&(o.classList.add("collapsed"),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var r=g(this._element);q.one(this._element,"transitionend",(function(){t.setTransitioning(!1),t._element.classList.remove("collapsing"),t._element.classList.add("collapse"),q.trigger(t._element,"hidden.bs.collapse")})),_(this._element,r)}},e.setTransitioning=function(t){this._isTransitioning=t},e.dispose=function(){C(this._element,"bs.collapse"),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(t){return(t=s(s({},ht),t)).toggle=Boolean(t.toggle),v(ft,t,dt),t},e._getDimension=function(){return this._element.classList.contains("width")?"width":"height"},e._getParent=function(){var t=this,e=this._config.parent;m(e)?void 0===e.jquery&&void 0===e[0]||(e=e[0]):e=$.findOne(e);var n='[data-toggle="collapse"][data-parent="'+e+'"]';return $.find(n,e).forEach((function(e){var n=d(e);t._addAriaAndCollapsedClass(n,[e])})),e},e._addAriaAndCollapsedClass=function(t,e){if(t){var n=t.classList.contains("show");e.length&&e.forEach((function(t){n?t.classList.remove("collapsed"):t.classList.add("collapsed"),t.setAttribute("aria-expanded",n)}))}},t.collapseInterface=function(e,n){var i=L(e,"bs.collapse"),o=s(s(s({},ht),nt.getDataAttributes(e)),"object"==typeof n&&n?n:{});if(!i&&o.toggle&&"string"==typeof n&&/show|hide/.test(n)&&(o.toggle=!1),i||(i=new t(e,o)),"string"==typeof n){if(void 0===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 L(t,"bs.collapse")},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return ht}}]),t}();q.on(document,"click.bs.collapse.data-api",'[data-toggle="collapse"]',(function(t){"A"===t.target.tagName&&t.preventDefault();var e=nt.getDataAttributes(this),n=h(this);$.find(n).forEach((function(t){var n,i=L(t,"bs.collapse");i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,gt.collapseInterface(t,n)}))}));var pt=E();if(pt){var mt=pt.fn[ft];pt.fn[ft]=gt.jQueryInterface,pt.fn[ft].Constructor=gt,pt.fn[ft].noConflict=function(){return pt.fn[ft]=mt,gt.jQueryInterface}}var _t="dropdown",vt=new RegExp("ArrowUp|ArrowDown|Escape"),bt={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic",popperConfig:null},yt={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string",popperConfig:"(null|object)"},wt=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(t,"bs.dropdown",this)}var i=e.prototype;return i.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains("disabled")){var t=this._element.classList.contains("show");e.clearMenus(),t||this.show()}},i.show=function(){if(!(this._element.disabled||this._element.classList.contains("disabled")||this._menu.classList.contains("show"))){var n=e.getParentFromElement(this._element),i={relatedTarget:this._element};if(!q.trigger(this._element,"show.bs.dropdown",i).defaultPrevented){if(!this._inNavbar){if(void 0===t)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var o=this._element;"parent"===this._config.reference?o=n:m(this._config.reference)&&(o=this._config.reference,void 0!==this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&n.classList.add("position-static"),this._popper=new t(o,this._menu,this._getPopperConfig())}var s;if("ontouchstart"in document.documentElement&&!n.closest(".navbar-nav"))(s=[]).concat.apply(s,document.body.children).forEach((function(t){return q.on(t,"mouseover",null,(function(){}))}));this._element.focus(),this._element.setAttribute("aria-expanded",!0),nt.toggleClass(this._menu,"show"),nt.toggleClass(this._element,"show"),q.trigger(n,"shown.bs.dropdown",i)}}},i.hide=function(){if(!this._element.disabled&&!this._element.classList.contains("disabled")&&this._menu.classList.contains("show")){var t=e.getParentFromElement(this._element),n={relatedTarget:this._element};q.trigger(t,"hide.bs.dropdown",n).defaultPrevented||(this._popper&&this._popper.destroy(),nt.toggleClass(this._menu,"show"),nt.toggleClass(this._element,"show"),q.trigger(t,"hidden.bs.dropdown",n))}},i.dispose=function(){C(this._element,"bs.dropdown"),q.off(this._element,".bs.dropdown"),this._element=null,this._menu=null,this._popper&&(this._popper.destroy(),this._popper=null)},i.update=function(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.scheduleUpdate()},i._addEventListeners=function(){var t=this;q.on(this._element,"click.bs.dropdown",(function(e){e.preventDefault(),e.stopPropagation(),t.toggle()}))},i._getConfig=function(t){return t=s(s(s({},this.constructor.Default),nt.getDataAttributes(this._element)),t),v(_t,t,this.constructor.DefaultType),t},i._getMenuElement=function(){return $.next(this._element,".dropdown-menu")[0]},i._getPlacement=function(){var t=this._element.parentNode,e="bottom-start";return t.classList.contains("dropup")?(e="top-start",this._menu.classList.contains("dropdown-menu-right")&&(e="top-end")):t.classList.contains("dropright")?e="right-start":t.classList.contains("dropleft")?e="left-start":this._menu.classList.contains("dropdown-menu-right")&&(e="bottom-end"),e},i._detectNavbar=function(){return Boolean(this._element.closest(".navbar"))},i._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=s(s({},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}),s(s({},t),this._config.popperConfig)},e.dropdownInterface=function(t,n){var i=L(t,"bs.dropdown");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||2!==t.button&&("keyup"!==t.type||"Tab"===t.key))for(var n=$.find('[data-toggle="dropdown"]'),i=0,o=n.length;i<o;i++){var s=e.getParentFromElement(n[i]),r=L(n[i],"bs.dropdown"),a={relatedTarget:n[i]};if(t&&"click"===t.type&&(a.clickEvent=t),r){var l=r._menu;if(n[i].classList.contains("show"))if(!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&"Tab"===t.key)&&l.contains(t.target)))if(!q.trigger(s,"hide.bs.dropdown",a).defaultPrevented){var c;if("ontouchstart"in document.documentElement)(c=[]).concat.apply(c,document.body.children).forEach((function(t){return q.off(t,"mouseover",null,(function(){}))}));n[i].setAttribute("aria-expanded","false"),r._popper&&r._popper.destroy(),l.classList.remove("show"),n[i].classList.remove("show"),q.trigger(s,"hidden.bs.dropdown",a)}}}},e.getParentFromElement=function(t){return d(t)||t.parentNode},e.dataApiKeydownHandler=function(t){if(!(/input|textarea/i.test(t.target.tagName)?"Space"===t.key||"Escape"!==t.key&&("ArrowDown"!==t.key&&"ArrowUp"!==t.key||t.target.closest(".dropdown-menu")):!vt.test(t.key))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!this.classList.contains("disabled"))){var n=e.getParentFromElement(this),i=this.classList.contains("show");if("Escape"===t.key)return(this.matches('[data-toggle="dropdown"]')?this:$.prev(this,'[data-toggle="dropdown"]')[0]).focus(),void e.clearMenus();if(i&&"Space"!==t.key){var o=$.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",n).filter(b);if(o.length){var s=o.indexOf(t.target);"ArrowUp"===t.key&&s>0&&s--,"ArrowDown"===t.key&&s<o.length-1&&s++,o[s=-1===s?0:s].focus()}}else e.clearMenus()}},e.getInstance=function(t){return L(t,"bs.dropdown")},n(e,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return bt}},{key:"DefaultType",get:function(){return yt}}]),e}();q.on(document,"keydown.bs.dropdown.data-api",'[data-toggle="dropdown"]',wt.dataApiKeydownHandler),q.on(document,"keydown.bs.dropdown.data-api",".dropdown-menu",wt.dataApiKeydownHandler),q.on(document,"click.bs.dropdown.data-api",wt.clearMenus),q.on(document,"keyup.bs.dropdown.data-api",wt.clearMenus),q.on(document,"click.bs.dropdown.data-api",'[data-toggle="dropdown"]',(function(t){t.preventDefault(),t.stopPropagation(),wt.dropdownInterface(this,"toggle")})),q.on(document,"click.bs.dropdown.data-api",".dropdown form",(function(t){return t.stopPropagation()}));var Et=E();if(Et){var kt=Et.fn[_t];Et.fn[_t]=wt.jQueryInterface,Et.fn[_t].Constructor=wt,Et.fn[_t].noConflict=function(){return Et.fn[_t]=kt,wt.jQueryInterface}}var Tt={backdrop:!0,keyboard:!0,focus:!0,show:!0},Lt={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Ct=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=$.findOne(".modal-dialog",t),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,T(t,"bs.modal",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("fade")&&(this._isTransitioning=!0);var n=q.trigger(this._element,"show.bs.modal",{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),q.on(this._element,"click.dismiss.bs.modal",'[data-dismiss="modal"]',(function(t){return e.hide(t)})),q.on(this._dialog,"mousedown.dismiss.bs.modal",(function(){q.one(e._element,"mouseup.dismiss.bs.modal",(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)&&!q.trigger(this._element,"hide.bs.modal").defaultPrevented){this._isShown=!1;var n=this._element.classList.contains("fade");if(n&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),q.off(document,"focusin.bs.modal"),this._element.classList.remove("show"),q.off(this._element,"click.dismiss.bs.modal"),q.off(this._dialog,"mousedown.dismiss.bs.modal"),n){var i=g(this._element);q.one(this._element,"transitionend",(function(t){return e._hideModal(t)})),_(this._element,i)}else this._hideModal()}},e.dispose=function(){[window,this._element,this._dialog].forEach((function(t){return q.off(t,".bs.modal")})),q.off(document,"focusin.bs.modal"),C(this._element,"bs.modal"),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=s(s({},Tt),t),v("modal",t,Lt),t},e._showElement=function(t){var e=this,n=this._element.classList.contains("fade"),i=$.findOne(".modal-body",this._dialog);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._element.scrollTop=0,i&&(i.scrollTop=0),n&&w(this._element),this._element.classList.add("show"),this._config.focus&&this._enforceFocus();var o=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,q.trigger(e._element,"shown.bs.modal",{relatedTarget:t})};if(n){var s=g(this._dialog);q.one(this._dialog,"transitionend",o),_(this._dialog,s)}else o()},e._enforceFocus=function(){var t=this;q.off(document,"focusin.bs.modal"),q.on(document,"focusin.bs.modal",(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?q.on(this._element,"keydown.dismiss.bs.modal",(function(e){t._config.keyboard&&"Escape"===e.key?(e.preventDefault(),t.hide()):t._config.keyboard||"Escape"!==e.key||t._triggerBackdropTransition()})):q.off(this._element,"keydown.dismiss.bs.modal")},e._setResizeEvent=function(){var t=this;this._isShown?q.on(window,"resize.bs.modal",(function(){return t._adjustDialog()})):q.off(window,"resize.bs.modal")},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("modal-open"),t._resetAdjustments(),t._resetScrollbar(),q.trigger(t._element,"hidden.bs.modal")}))},e._removeBackdrop=function(){this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null},e._showBackdrop=function(t){var e=this,n=this._element.classList.contains("fade")?"fade":"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className="modal-backdrop",n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),q.on(this._element,"click.dismiss.bs.modal",(function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&e._triggerBackdropTransition()})),n&&w(this._backdrop),this._backdrop.classList.add("show"),!n)return void t();var i=g(this._backdrop);q.one(this._backdrop,"transitionend",t),_(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove("show");var o=function(){e._removeBackdrop(),t()};if(this._element.classList.contains("fade")){var s=g(this._backdrop);q.one(this._backdrop,"transitionend",o),_(this._backdrop,s)}else o()}else t()},e._triggerBackdropTransition=function(){var t=this;if("static"===this._config.backdrop){if(q.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;this._element.classList.add("modal-static");var e=g(this._element);q.one(this._element,"transitionend",(function(){t._element.classList.remove("modal-static")})),_(this._element,e),this._element.focus()}else this.hide()},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=Math.round(t.left+t.right)<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){$.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];nt.setDataAttribute(e,"padding-right",n),e.style.paddingRight=parseFloat(i)+t._scrollbarWidth+"px"})),$.find(".sticky-top").forEach((function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];nt.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"];nt.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add("modal-open")},e._resetScrollbar=function(){$.find(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top").forEach((function(t){var e=nt.getDataAttribute(t,"padding-right");void 0!==e&&(nt.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)})),$.find(".sticky-top").forEach((function(t){var e=nt.getDataAttribute(t,"margin-right");void 0!==e&&(nt.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)}));var t=nt.getDataAttribute(document.body,"padding-right");void 0===t?document.body.style.paddingRight="":(nt.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},e._getScrollbarWidth=function(){var t=document.createElement("div");t.className="modal-scrollbar-measure",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=L(this,"bs.modal"),o=s(s(s({},Tt),nt.getDataAttributes(this)),"object"==typeof e&&e?e:{});if(i||(i=new t(this,o)),"string"==typeof e){if(void 0===i[e])throw new TypeError('No method named "'+e+'"');i[e](n)}else o.show&&i.show(n)}))},t.getInstance=function(t){return L(t,"bs.modal")},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Tt}}]),t}();q.on(document,"click.bs.modal.data-api",'[data-toggle="modal"]',(function(t){var e=this,n=d(this);"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),q.one(n,"show.bs.modal",(function(t){t.defaultPrevented||q.one(n,"hidden.bs.modal",(function(){b(e)&&e.focus()}))}));var i=L(n,"bs.modal");if(!i){var o=s(s({},nt.getDataAttributes(n)),nt.getDataAttributes(this));i=new Ct(n,o)}i.show(this)}));var At=E();if(At){var St=At.fn.modal;At.fn.modal=Ct.jQueryInterface,At.fn.modal.Constructor=Ct,At.fn.modal.noConflict=function(){return At.fn.modal=St,Ct.jQueryInterface}}var Ot=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Dt=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi,It=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,Nt={"*":["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","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function jt(t,e,n){var i;if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var o=(new window.DOMParser).parseFromString(t,"text/html"),s=Object.keys(e),r=(i=[]).concat.apply(i,o.body.querySelectorAll("*")),a=function(t,n){var i,o=r[t],a=o.nodeName.toLowerCase();if(-1===s.indexOf(a))return o.parentNode.removeChild(o),"continue";var l=(i=[]).concat.apply(i,o.attributes),c=[].concat(e["*"]||[],e[a]||[]);l.forEach((function(t){(function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Ot.indexOf(n)||(Dt.test(t.nodeValue)||It.test(t.nodeValue));for(var i=e.filter((function(t){return t instanceof RegExp})),o=0,s=i.length;o<s;o++)if(i[o].test(n))return!0;return!1})(t,c)||o.removeAttribute(t.nodeName)}))},l=0,c=r.length;l<c;l++)a(l);return o.body.innerHTML}var Pt="tooltip",xt=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Rt=["sanitize","whiteList","sanitizeFn"],Ht={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",popperConfig:"(null|object)"},Bt={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Mt={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:Nt,popperConfig:null},Qt={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"},Ut=function(){function e(e,n){if(void 0===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(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=L(t.target,e);n||(n=new this.constructor(t.target,this._getDelegateConfig()),T(t.target,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}},i.dispose=function(){clearTimeout(this._timeout),C(this.element,this.constructor.DATA_KEY),q.off(this.element,this.constructor.EVENT_KEY),q.off(this.element.closest(".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,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=q.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 s=this.getTipElement(),r=u(this.constructor.NAME);s.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&s.classList.add("fade");var a="function"==typeof this.config.placement?this.config.placement.call(this,s,this.element):this.config.placement,l=this._getAttachment(a);this._addAttachmentClass(l);var c,f=this._getContainer();if(T(s,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||f.appendChild(s),q.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new t(this.element,s,this._getPopperConfig(l)),s.classList.add("show"),"ontouchstart"in document.documentElement)(c=[]).concat.apply(c,document.body.children).forEach((function(t){q.on(t,"mouseover",(function(){}))}));var h=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,q.trigger(e.element,e.constructor.Event.SHOWN),"out"===t&&e._leave(null,e)};if(this.tip.classList.contains("fade")){var d=g(this.tip);q.one(this.tip,"transitionend",h),_(this.tip,d)}else h()}},i.hide=function(){var t=this,e=this.getTipElement(),n=function(){"show"!==t._hoverState&&e.parentNode&&e.parentNode.removeChild(e),t._cleanTipClass(),t.element.removeAttribute("aria-describedby"),q.trigger(t.element,t.constructor.Event.HIDDEN),t._popper.destroy()};if(!q.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){var i;if(e.classList.remove("show"),"ontouchstart"in document.documentElement)(i=[]).concat.apply(i,document.body.children).forEach((function(t){return q.off(t,"mouseover",y)}));if(this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,this.tip.classList.contains("fade")){var o=g(e);q.one(e,"transitionend",n),_(e,o)}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($.findOne(".tooltip-inner",t),this.getTitle()),t.classList.remove("fade","show")},i.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&m(e)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.textContent=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=jt(e,this.config.whiteList,this.config.sanitizeFn)),t.innerHTML=e):t.textContent=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._getPopperConfig=function(t){var e=this;return s(s({},{placement:t,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)}}),this.config.popperConfig)},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=s(s({},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:m(this.config.container)?this.config.container:$.findOne(this.config.container)},i._getAttachment=function(t){return Bt[t.toUpperCase()]},i._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("manual"!==e){var n="hover"===e?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i="hover"===e?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(this.element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=s(s({},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||L(t.target,n))||(e=new this.constructor(t.target,this._getDelegateConfig()),T(t.target,n,e)),t&&(e._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e.getTipElement().classList.contains("show")||"show"===e._hoverState?e._hoverState="show":(clearTimeout(e._timeout),e._hoverState="show",e.config.delay&&e.config.delay.show?e._timeout=setTimeout((function(){"show"===e._hoverState&&e.show()}),e.config.delay.show):e.show())},i._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||L(t.target,n))||(e=new this.constructor(t.target,this._getDelegateConfig()),T(t.target,n,e)),t&&(e._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState="out",e.config.delay&&e.config.delay.hide?e._timeout=setTimeout((function(){"out"===e._hoverState&&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=nt.getDataAttributes(this.element);return Object.keys(e).forEach((function(t){-1!==Rt.indexOf(t)&&delete e[t]})),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=s(s(s({},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()),v(Pt,t,this.constructor.DefaultType),t.sanitize&&(t.template=jt(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(xt);null!==e&&e.length>0&&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("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},e.jQueryInterface=function(t){return this.each((function(){var n=L(this,"bs.tooltip"),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(t){return L(t,"bs.tooltip")},n(e,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Mt}},{key:"NAME",get:function(){return Pt}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return Qt}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Ht}}]),e}(),Ft=E();if(Ft){var Wt=Ft.fn[Pt];Ft.fn[Pt]=Ut.jQueryInterface,Ft.fn[Pt].Constructor=Ut,Ft.fn[Pt].noConflict=function(){return Ft.fn[Pt]=Wt,Ut.jQueryInterface}}var Vt="popover",qt=new RegExp("(^|\\s)bs-popover\\S+","g"),zt=s(s({},Ut.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>'}),Kt=s(s({},Ut.DefaultType),{},{content:"(string|element|function)"}),Xt={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"},Yt=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 s=o.prototype;return s.isWithContent=function(){return this.getTitle()||this._getContent()},s.setContent=function(){var t=this.getTipElement();this.setElementContent($.findOne(".popover-header",t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent($.findOne(".popover-body",t),e),t.classList.remove("fade","show")},s._addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},s._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},s._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(qt);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=L(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),T(this,"bs.popover",e)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}}))},o.getInstance=function(t){return L(t,"bs.popover")},n(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return zt}},{key:"NAME",get:function(){return Vt}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return Xt}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return Kt}}]),o}(Ut),$t=E();if($t){var Gt=$t.fn[Vt];$t.fn[Vt]=Yt.jQueryInterface,$t.fn[Vt].Constructor=Yt,$t.fn[Vt].noConflict=function(){return $t.fn[Vt]=Gt,Yt.jQueryInterface}}var Zt="scrollspy",Jt={offset:10,method:"auto",target:""},te={offset:"number",method:"string",target:"(string|element)"},ee=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+" .nav-link,"+this._config.target+" .list-group-item,"+this._config.target+" .dropdown-item",this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,q.on(this._scrollElement,"scroll.bs.scrollspy",(function(t){return n._process(t)})),this.refresh(),this._process(),T(t,"bs.scrollspy",this)}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?"offset":"position",n="auto"===this._config.method?e:this._config.method,i="position"===n?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),$.find(this._selector).map((function(t){var e,o=h(t);if(o&&(e=$.findOne(o)),e){var s=e.getBoundingClientRect();if(s.width||s.height)return[nt[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(){C(this._element,"bs.scrollspy"),q.off(this._scrollElement,".bs.scrollspy"),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=s(s({},Jt),"object"==typeof t&&t?t:{})).target&&m(t.target)){var e=t.target.id;e||(e=u(Zt),t.target.id=e),t.target="#"+e}return v(Zt,t,te),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]&&(void 0===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=$.findOne(e.join(","));n.classList.contains("dropdown-item")?($.findOne(".dropdown-toggle",n.closest(".dropdown")).classList.add("active"),n.classList.add("active")):(n.classList.add("active"),$.parents(n,".nav, .list-group").forEach((function(t){$.prev(t,".nav-link, .list-group-item").forEach((function(t){return t.classList.add("active")})),$.prev(t,".nav-item").forEach((function(t){$.children(t,".nav-link").forEach((function(t){return t.classList.add("active")}))}))}))),q.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:t})},e._clear=function(){$.find(this._selector).filter((function(t){return t.classList.contains("active")})).forEach((function(t){return t.classList.remove("active")}))},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.scrollspy");if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t.getInstance=function(t){return L(t,"bs.scrollspy")},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Jt}}]),t}();q.on(window,"load.bs.scrollspy.data-api",(function(){$.find('[data-spy="scroll"]').forEach((function(t){return new ee(t,nt.getDataAttributes(t))}))}));var ne=E();if(ne){var ie=ne.fn[Zt];ne.fn[Zt]=ee.jQueryInterface,ne.fn[Zt].Constructor=ee,ne.fn[Zt].noConflict=function(){return ne.fn[Zt]=ie,ee.jQueryInterface}}var oe=function(){function t(t){this._element=t,T(this._element,"bs.tab",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("active")||this._element.classList.contains("disabled"))){var e,n=d(this._element),i=this._element.closest(".nav, .list-group");if(i){var o="UL"===i.nodeName||"OL"===i.nodeName?":scope > li > .active":".active";e=(e=$.find(o,i))[e.length-1]}var s=null;if(e&&(s=q.trigger(e,"hide.bs.tab",{relatedTarget:this._element})),!(q.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==s&&s.defaultPrevented)){this._activate(this._element,i);var r=function(){q.trigger(e,"hidden.bs.tab",{relatedTarget:t._element}),q.trigger(t._element,"shown.bs.tab",{relatedTarget:e})};n?this._activate(n,n.parentNode,r):r()}}},e.dispose=function(){C(this._element,"bs.tab"),this._element=null},e._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?$.children(e,".active"):$.find(":scope > li > .active",e))[0],s=n&&o&&o.classList.contains("fade"),r=function(){return i._transitionComplete(t,o,n)};if(o&&s){var a=g(o);o.classList.remove("show"),q.one(o,"transitionend",r),_(o,a)}else r()},e._transitionComplete=function(t,e,n){if(e){e.classList.remove("active");var i=$.findOne(":scope > .dropdown-menu .active",e.parentNode);i&&i.classList.remove("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),w(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&t.parentNode.classList.contains("dropdown-menu"))&&(t.closest(".dropdown")&&$.find(".dropdown-toggle").forEach((function(t){return t.classList.add("active")})),t.setAttribute("aria-expanded",!0));n&&n()},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.tab")||new t(this);if("string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}}))},t.getInstance=function(t){return L(t,"bs.tab")},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();q.on(document,"click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),(L(this,"bs.tab")||new oe(this)).show()}));var se=E();if(se){var re=se.fn.tab;se.fn.tab=oe.jQueryInterface,se.fn.tab.Constructor=oe,se.fn.tab.noConflict=function(){return se.fn.tab=re,oe.jQueryInterface}}var ae={animation:"boolean",autohide:"boolean",delay:"number"},le={animation:!0,autohide:!0,delay:500},ce=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),T(t,"bs.toast",this)}var e=t.prototype;return e.show=function(){var t=this;if(!q.trigger(this._element,"show.bs.toast").defaultPrevented){this._config.animation&&this._element.classList.add("fade");var e=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),q.trigger(t._element,"shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),w(this._element),this._element.classList.add("showing"),this._config.animation){var n=g(this._element);q.one(this._element,"transitionend",e),_(this._element,n)}else e()}},e.hide=function(){var t=this;if(this._element.classList.contains("show")&&!q.trigger(this._element,"hide.bs.toast").defaultPrevented){var e=function(){t._element.classList.add("hide"),q.trigger(t._element,"hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var n=g(this._element);q.one(this._element,"transitionend",e),_(this._element,n)}else e()}},e.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains("show")&&this._element.classList.remove("show"),q.off(this._element,"click.dismiss.bs.toast"),C(this._element,"bs.toast"),this._element=null,this._config=null},e._getConfig=function(t){return t=s(s(s({},le),nt.getDataAttributes(this._element)),"object"==typeof t&&t?t:{}),v("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;q.on(this._element,"click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},t.jQueryInterface=function(e){return this.each((function(){var n=L(this,"bs.toast");if(n||(n=new t(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e](this)}}))},t.getInstance=function(t){return L(t,"bs.toast")},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return ae}},{key:"Default",get:function(){return le}}]),t}(),ue=E();if(ue){var fe=ue.fn.toast;ue.fn.toast=ce.jQueryInterface,ue.fn.toast.Constructor=ce,ue.fn.toast.noConflict=function(){return ue.fn.toast=fe,ce.jQueryInterface}}return{Alert:K,Button:G,Carousel:lt,Collapse:gt,Dropdown:wt,Modal:Ct,Popover:Yt,ScrollSpy:ee,Tab:oe,Toast:ce,Tooltip:Ut}}));
//# 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 6264e387d0..aac17f7a62 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","element","getUID","prefix","Math","random","document","getElementById","getSelector","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","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","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","mapData","set","key","data","get","keyProperties","delete","Data","instance","find","Element","prototype","querySelectorAll","findOne","defaultPreventedPreservedOnDispatch","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","scopeSelectorRegex","_","this","hasId","Boolean","nodeList","replace","removeAttribute","matches","$","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","slice","keyHandlers","trigger","args","jQueryEvent","isNative","bubbles","nativeDispatch","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","SelectorEngine","_ref","documentElement","concat","findFn","children","_ref2","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","previous","previousElementSibling","next","nextElementSibling","NAME","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","_this","classList","remove","contains","_destroyElement","removeChild","jQueryInterface","each","handleDismiss","alertInstance","getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread2","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","EVENT_KEY","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","_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","Collapse","_isTransitioning","_triggerArray","SELECTOR_DATA_TOGGLE","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","flip","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","clearMenus","getParentFromElement","Popper","referenceElement","_getPopperConfig","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_this5","_triggerBackdropTransition","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","_this9","modalTransitionDuration","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","_this10","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","_this11","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","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","nodeName","attributeList","whitelistedAttributes","attr","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","allowedAttribute","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","DATA_KEY","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","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","CLASS_PREFIX","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","Popover","_getContent","method","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","SELECTOR_NAV_LINKS","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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = 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() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\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 element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n 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 isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\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 find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('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\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (_) {\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 find,\n findOne,\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 { getjQuery } from '../util/index'\nimport { defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst $ = getjQuery()\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.slice(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 && $) {\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 = new CustomEvent(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 } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n return [].concat(...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 = [].concat(...element.children)\n\n return children.filter(child => child.matches(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 element.closest(selector)\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\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_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\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 let parent = getElementFromSelector(element)\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif ($) {\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 { getjQuery } 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 CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"buttons\"]'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_BLUR_DATA_API = `blur${EVENT_KEY}${DATA_API_KEY}`\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 && input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains(CLASS_NAME_DISABLED) ||\n rootElement.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n input.checked = !this._element.classList.contains(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_FOCUS)\n }\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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'\n\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = 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 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(CLASS_NAME_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 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(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_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 = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_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 target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_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 = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\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_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = 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(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = 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(CLASS_NAME_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(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_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(WIDTH)\n return hasWidth ? WIDTH : 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 = `${SELECTOR_DATA_TOGGLE}[data-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\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(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_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 = 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getElementFromSelector,\n isElement,\n isVisible,\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'\n\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)\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n 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(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_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(this._element, 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 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(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !SelectorEngine.closest(parent, SELECTOR_NAVBAR_NAV)) {\n [].concat(...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, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_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 if (this._popper) {\n this._popper.destroy()\n }\n\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_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) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\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 return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = PLACEMENT_TOP\n if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_TOPEND\n }\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, `.${CLASS_NAME_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 {\n ...popperConfig,\n ...this._config.popperConfig\n }\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 = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = 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 (!toggles[i].classList.contains(CLASS_NAME_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 dropdownMenu.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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || 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(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.which === ESCAPE_KEYCODE) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.which === SPACE_KEYCODE) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent)\n .filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target) || 0\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 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\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(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.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(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (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) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else {\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(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n 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 this._triggerBackdropTransition()\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_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(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_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 _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._element)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\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 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 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(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n 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 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 = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.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 target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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\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,[\\d+/a-z]+=*$/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 SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\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', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\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 = [].concat(...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 = [].concat(...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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\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 popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"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 popperConfig: null\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 CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.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(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n 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, `.${CLASS_NAME_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) {\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(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n 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, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_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 [].concat(...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 === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_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 !== HOVER_STATE_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(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...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(CLASS_NAME_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(CLASS_NAME_FADE)\n tip.classList.remove(CLASS_NAME_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 _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${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 return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\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, `.${CLASS_NAME_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(CLASS_NAME_SHOW) ||\n context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || 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 = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = 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 > 0) {\n tabClass.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(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 { getjQuery } 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 Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\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 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(CLASS_NAME_FADE)\n tip.classList.remove(CLASS_NAME_SHOW)\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\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 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getSelectorFromElement,\n getUID,\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_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} .${CLASS_NAME_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 METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = 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(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(SELECTOR_DROPDOWN_TOGGLE, SelectorEngine.closest(link, SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = 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 SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\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_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\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(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = SelectorEngine.closest(this._element, SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = 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 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\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_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n 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(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n 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(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_HIDE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_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(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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/alert.js","../../js/src/dom/selector-engine.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","element","getUID","prefix","Math","random","document","getElementById","getSelector","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","getElementFromSelector","getTransitionDurationFromElement","_window$getComputedSt","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","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","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","noop","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","mapData","set","key","data","get","keyProperties","delete","Data","instance","find","Element","prototype","querySelectorAll","findOne","defaultPreventedPreservedOnDispatch","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","scopeSelectorRegex","_","this","hasId","Boolean","nodeList","replace","removeAttribute","matches","$","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","findHandler","events","handler","delegationSelector","uidEventList","i","len","length","event","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","oneOff","_normalizeParams","handlers","previousFn","fn","domElements","target","EventHandler","off","type","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","slice","keyHandlers","trigger","args","jQueryEvent","isNative","bubbles","nativeDispatch","evt","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","NAME","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","closest","_this","classList","remove","contains","_destroyElement","removeChild","jQueryInterface","each","handleDismiss","alertInstance","getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","SelectorEngine","_ref","documentElement","concat","findFn","children","_ref2","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","previous","previousElementSibling","next","nextElementSibling","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread2","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","EVENT_KEY","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","_addEventListeners","_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","parent","Collapse","_isTransitioning","_triggerArray","SELECTOR_DATA_TOGGLE","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_KEY","flip","boundary","reference","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","clearMenus","getParentFromElement","Popper","referenceElement","_getPopperConfig","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","toggles","context","clickEvent","dropdownMenu","dataApiKeydownHandler","items","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","modalBody","appendChild","_enforceFocus","transitionComplete","_this5","_triggerBackdropTransition","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","_this9","modalTransitionDuration","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","round","right","innerWidth","_getScrollbarWidth","_this10","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","_this11","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","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","nodeName","attributeList","whitelistedAttributes","attr","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","allowedAttribute","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","DATA_KEY","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","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","textContent","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","CLASS_PREFIX","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","Popover","_getContent","method","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","SELECTOR_NAV_LINKS","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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = 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() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\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 element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n 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 isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\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 find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = new CustomEvent('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\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (_) {\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 find,\n findOne,\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 { getjQuery } from '../util/index'\nimport { defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst $ = getjQuery()\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\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 bootstrapHandler(element, fn) {\n return function handler(event) {\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 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.slice(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 && $) {\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 = new CustomEvent(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): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\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_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\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 return getElementFromSelector(element) || element.closest(`.${CLASSNAME_ALERT}`)\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif ($) {\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): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n return [].concat(...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 = [].concat(...element.children)\n\n return children.filter(child => child.matches(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 prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n }\n}\n\nexport default SelectorEngine\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 { getjQuery } 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 CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"buttons\"]'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_BLUR_DATA_API = `blur${EVENT_KEY}${DATA_API_KEY}`\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 = this._element.closest(SELECTOR_DATA_TOGGLE)\n\n if (rootElement) {\n const input = SelectorEngine.findOne(SELECTOR_INPUT, this._element)\n\n if (input && input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains(CLASS_NAME_DISABLED) ||\n rootElement.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n input.checked = !this._element.classList.contains(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(CLASS_NAME_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 const button = event.target.closest(SELECTOR_BUTTON)\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 = event.target.closest(SELECTOR_BUTTON)\n\n if (button) {\n button.classList.add(CLASS_NAME_FOCUS)\n }\n})\n\nEventHandler.on(document, EVENT_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = event.target.closest(SELECTOR_BUTTON)\n\n if (button) {\n button.classList.remove(CLASS_NAME_FOCUS)\n }\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\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 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(CLASS_NAME_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.key) {\n case ARROW_LEFT_KEY:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEY:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n 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(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_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 = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_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(CLASS_NAME_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, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, 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(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_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 target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_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 = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\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_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = 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(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = 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(CLASS_NAME_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(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_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(WIDTH)\n return hasWidth ? WIDTH : 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 = `${SELECTOR_DATA_TOGGLE}[data-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\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(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_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 && typeof config === 'string' && /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 = 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getElementFromSelector,\n isElement,\n isVisible,\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'\n\nconst ESCAPE_KEY = 'Escape'\nconst SPACE_KEY = 'Space'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n 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(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_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(this._element, 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 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(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...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, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_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 if (this._popper) {\n this._popper.destroy()\n }\n\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_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) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\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 return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = PLACEMENT_TOP\n if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_TOPEND\n }\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(this._element.closest(`.${CLASS_NAME_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 {\n ...popperConfig,\n ...this._config.popperConfig\n }\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.button === RIGHT_MOUSE_BUTTON ||\n (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = 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 (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && ((event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName)) ||\n (event.type === 'keyup' && event.key === TAB_KEY)) &&\n dropdownMenu.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 [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || 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.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent)\n .filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.key === ARROW_UP_KEY && index > 0) { // Up\n index--\n }\n\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) { // Down\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\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_KEY = 'Escape'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.scrollTop = 0\n\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (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) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n 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 this._triggerBackdropTransition()\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_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(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_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 _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._element)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\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 = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n 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 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(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n 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 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 = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.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 target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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\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,[\\d+/a-z]+=*$/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 SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\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', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\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 = [].concat(...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 = [].concat(...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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\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 popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"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 popperConfig: null\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 CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.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.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, 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(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(this.element.closest(`.${CLASS_NAME_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) {\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(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n 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, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_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 [].concat(...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 === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_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 !== HOVER_STATE_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(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...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(CLASS_NAME_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(CLASS_NAME_FADE, CLASS_NAME_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.textContent = 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.textContent = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${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 return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\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(this.element.closest(`.${CLASS_NAME_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.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, 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(CLASS_NAME_SHOW) ||\n context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = 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 > 0) {\n tabClass.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(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 { getjQuery } 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 Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\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 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(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\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 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n getSelectorFromElement,\n getUID,\n isElement,\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_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} .${CLASS_NAME_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 METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = 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' && isElement(config.target)) {\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 for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.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(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = 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 SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\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_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\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(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = 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 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(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const 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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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 getjQuery,\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_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n 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(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n 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(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_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(CLASS_NAME_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(CLASS_NAME_HIDE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_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(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_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\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\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