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
diff options
context:
space:
mode:
authorXhmikosR <xhmikosr@gmail.com>2019-03-11 18:13:30 +0300
committerXhmikosR <xhmikosr@gmail.com>2019-03-11 18:59:08 +0300
commitac67e04ce016406377595291ff1357eda63cc311 (patch)
tree4ad39e3b7079bdb0494ed827f90f49dda7b35ee2 /dist
parentc2b05dd7b5e6e66475dc89de1ca9466c92eb1e90 (diff)
Dist.
Diffstat (limited to 'dist')
-rw-r--r--dist/js/bootstrap.bundle.js99
-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.js4949
-rw-r--r--dist/js/bootstrap.esm.js.map1
-rw-r--r--dist/js/bootstrap.esm.min.js7
-rw-r--r--dist/js/bootstrap.esm.min.js.map1
-rw-r--r--dist/js/bootstrap.js99
-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, 5058 insertions, 110 deletions
diff --git a/dist/js/bootstrap.bundle.js b/dist/js/bootstrap.bundle.js
index 65dcc6f1e0..dfe46deef0 100644
--- a/dist/js/bootstrap.bundle.js
+++ b/dist/js/bootstrap.bundle.js
@@ -4,10 +4,10 @@
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (global = global || self, factory(global.bootstrap = {}));
-}(this, function (exports) { 'use strict';
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
+ typeof define === 'function' && define.amd ? define(factory) :
+ (global = global || self, global.bootstrap = factory());
+}(this, function () { 'use strict';
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
@@ -74,7 +74,8 @@
var MAX_UID = 1000000;
var MILLISECONDS_MULTIPLIER = 1000;
var TRANSITION_END = 'transitionend';
- var jQuery = window.jQuery; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+ var _window = window,
+ jQuery = _window.jQuery; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
var toType = function toType(obj) {
return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
@@ -105,7 +106,7 @@
try {
return document.querySelector(selector) ? selector : null;
- } catch (err) {
+ } catch (error) {
return null;
}
};
@@ -322,7 +323,7 @@
try {
element.querySelectorAll(':scope *');
- } catch (e) {
+ } catch (error) {
return false;
}
@@ -414,13 +415,14 @@
function getEvent(element) {
var uid = getUidEvent(element);
element.uidEvent = uid;
- return eventRegistry[uid] = eventRegistry[uid] || {};
+ eventRegistry[uid] = eventRegistry[uid] || {};
+ 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.charCode : event.keyCode;
+ event.which = event.charCode === null ? event.keyCode : event.charCode;
}
event.delegateTarget = element;
@@ -525,7 +527,7 @@
}
var uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));
- var fn = !delegation ? bootstrapHandler(element, handler) : bootstrapDelegationHandler(element, handler, delegationFn);
+ var fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler);
fn.delegationSelector = delegation ? handler : null;
fn.originalHandler = originalHandler;
fn.oneOff = oneOff;
@@ -681,8 +683,8 @@
* ------------------------------------------------------------------------
*/
- var findFn = Polyfill.find;
- var _findOne = Polyfill.findOne;
+ var findFn = Polyfill.find,
+ _findOne = Polyfill.findOne;
var NODE_TEXT = 3;
var SelectorEngine = {
matches: function matches(element, selector) {
@@ -1723,7 +1725,7 @@
data.to(config);
} else if (typeof action === 'string') {
if (typeof data[action] === 'undefined') {
- throw new Error("No method named \"" + action + "\"");
+ throw new TypeError("No method named \"" + action + "\"");
}
data[action]();
@@ -2101,19 +2103,18 @@
_proto._getParent = function _getParent() {
var _this3 = this;
- var parent;
-
- if (isElement(this._config.parent)) {
- parent = this._config.parent; // it's a jQuery object
+ var parent = this._config.parent;
- if (typeof this._config.parent.jquery !== 'undefined' || typeof this._config.parent[0] !== 'undefined') {
- parent = this._config.parent[0];
+ if (isElement(parent)) {
+ // it's a jQuery object
+ if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {
+ parent = parent[0];
}
} else {
- parent = SelectorEngine.findOne(this._config.parent);
+ parent = SelectorEngine.findOne(parent);
}
- var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
+ var selector = "[data-toggle=\"collapse\"][data-parent=\"" + parent + "\"]";
makeArray(SelectorEngine.find(selector, parent)).forEach(function (element) {
_this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
});
@@ -2126,10 +2127,10 @@
if (triggerArray.length) {
triggerArray.forEach(function (elem) {
- if (!isOpen) {
- elem.classList.add(ClassName$3.COLLAPSED);
- } else {
+ if (isOpen) {
elem.classList.remove(ClassName$3.COLLAPSED);
+ } else {
+ elem.classList.add(ClassName$3.COLLAPSED);
}
elem.setAttribute('aria-expanded', isOpen);
@@ -2159,7 +2160,7 @@
if (typeof config === 'string') {
if (typeof data[config] === 'undefined') {
- throw new Error("No method named \"" + config + "\"");
+ throw new TypeError("No method named \"" + config + "\"");
}
data[config]();
@@ -4863,7 +4864,6 @@
DROPRIGHT: 'dropright',
DROPLEFT: 'dropleft',
MENURIGHT: 'dropdown-menu-right',
- MENULEFT: 'dropdown-menu-left',
POSITION_STATIC: 'position-static'
};
var Selector$4 = {
@@ -5169,7 +5169,7 @@
if (typeof config === 'string') {
if (typeof data[config] === 'undefined') {
- throw new Error("No method named \"" + config + "\"");
+ throw new TypeError("No method named \"" + config + "\"");
}
data[config]();
@@ -5774,7 +5774,6 @@
}
} // ----------------------------------------------------------------------
// the following methods are used to handle overflowing modals
- // todo (fat): these should probably be refactored out of modal.js
// ----------------------------------------------------------------------
;
@@ -5853,11 +5852,11 @@
var padding = Manipulator.getDataAttribute(document.body, 'padding-right');
- if (typeof padding !== 'undefined') {
+ if (typeof padding === 'undefined') {
+ document.body.style.paddingRight = '';
+ } else {
Manipulator.removeDataAttribute(document.body, 'padding-right');
document.body.style.paddingRight = padding;
- } else {
- document.body.style.paddingRight = '';
}
};
@@ -6168,7 +6167,6 @@
SHOW: 'show'
};
var Selector$6 = {
- TOOLTIP: '.tooltip',
TOOLTIP_INNER: '.tooltip-inner',
TOOLTIP_ARROW: '.tooltip-arrow'
};
@@ -6296,7 +6294,7 @@
if (this.isWithContent() && this._isEnabled) {
var showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW);
var shadowRoot = findShadowRoot(this.element);
- var isInTheDom = shadowRoot !== null ? shadowRoot.contains(this.element) : this.element.ownerDocument.documentElement.contains(this.element);
+ var isInTheDom = shadowRoot === null ? this.element.ownerDocument.documentElement.contains(this.element) : shadowRoot.contains(this.element);
if (showEvent.defaultPrevented || !isInTheDom) {
return;
@@ -7068,18 +7066,15 @@
};
var ClassName$8 = {
DROPDOWN_ITEM: 'dropdown-item',
- DROPDOWN_MENU: 'dropdown-menu',
ACTIVE: 'active'
};
var Selector$8 = {
DATA_SPY: '[data-spy="scroll"]',
- ACTIVE: '.active',
NAV_LIST_GROUP: '.nav, .list-group',
NAV_LINKS: '.nav-link',
NAV_ITEMS: '.nav-item',
LIST_ITEMS: '.list-group-item',
DROPDOWN: '.dropdown',
- DROPDOWN_ITEMS: '.dropdown-item',
DROPDOWN_TOGGLE: '.dropdown-toggle'
};
var OffsetMethod = {
@@ -7102,7 +7097,7 @@
this._element = element;
this._scrollElement = element.tagName === 'BODY' ? window : element;
this._config = this._getConfig(config);
- this._selector = this._config.target + " " + Selector$8.NAV_LINKS + "," + (this._config.target + " " + Selector$8.LIST_ITEMS + ",") + (this._config.target + " " + Selector$8.DROPDOWN_ITEMS);
+ this._selector = this._config.target + " " + Selector$8.NAV_LINKS + "," + (this._config.target + " " + Selector$8.LIST_ITEMS + ",") + (this._config.target + " ." + ClassName$8.DROPDOWN_ITEM);
this._offsets = [];
this._targets = [];
this._activeTarget = null;
@@ -7143,7 +7138,6 @@
var targetBCR = target.getBoundingClientRect();
if (targetBCR.width || targetBCR.height) {
- // TODO (fat): remove sketch reliance on jQuery position/offset
return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector];
}
}
@@ -7820,24 +7814,25 @@
/**
* --------------------------------------------------------------------------
- * Bootstrap (v4.3.1): index.js
+ * Bootstrap (v4.3.1): index.umd.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
+ var index_umd = {
+ Alert: Alert,
+ Button: Button,
+ Carousel: Carousel,
+ Collapse: Collapse,
+ Dropdown: Dropdown,
+ Modal: Modal,
+ Popover: Popover,
+ ScrollSpy: ScrollSpy,
+ Tab: Tab,
+ Toast: Toast,
+ Tooltip: Tooltip
+ };
- exports.Alert = Alert;
- exports.Button = Button;
- exports.Carousel = Carousel;
- exports.Collapse = Collapse;
- exports.Dropdown = Dropdown;
- exports.Modal = Modal;
- exports.Popover = Popover;
- exports.ScrollSpy = ScrollSpy;
- exports.Tab = Tab;
- exports.Toast = Toast;
- exports.Tooltip = Tooltip;
-
- Object.defineProperty(exports, '__esModule', { value: true });
+ return index_umd;
}));
//# sourceMappingURL=bootstrap.bundle.js.map
diff --git a/dist/js/bootstrap.bundle.js.map b/dist/js/bootstrap.bundle.js.map
index b7965ad5ca..27d752d493 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/eventHandler.js","../../js/src/dom/selectorEngine.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/src/index.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst jQuery = window.jQuery\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = (obj) => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = (prefix) => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n}\n\nconst getSelectorFromElement = (element) => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = (element) => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = (element) => {\n 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' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = (nodeList) => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = (element) => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = (element) => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = (element) => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n 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","/**\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 {\n getUID\n} from '../util/index'\n\n/* istanbul ignore next */\nconst Polyfill = (() => {\n // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\n const 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\n let find = Element.prototype.querySelectorAll\n let findOne = Element.prototype.querySelector\n\n const scopeSelectorRegex = /:scope\\b/\n const supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (e) {\n return false\n }\n\n return true\n })()\n\n if (!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\n return {\n defaultPreventedPreservedOnDispatch,\n find,\n findOne\n }\n})()\n\nexport default Polyfill\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from '../util/index'\nimport Polyfill from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu',\n 'mousewheel', 'DOMMouseScroll',\n 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend',\n 'keydown', 'keypress', 'keyup',\n 'orientationchange',\n 'touchstart', 'touchmove', 'touchend', 'touchcancel',\n 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel',\n 'gesturestart', 'gesturechange', 'gestureend',\n 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout',\n 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange',\n 'error', 'abort', '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 element.uidEvent = uid\n\n return eventRegistry[uid] = 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.charCode : event.keyCode\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 && 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 uidList = Object.keys(events)\n\n for (let i = 0; i < uidList.length; i++) {\n const uid = uidList[i]\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\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 ? bootstrapHandler(element, handler) : bootstrapDelegationHandler(element, handler, delegationFn)\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 === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach((handlerKey) => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach((elementEvent) => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach((keyHandlers) => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = 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 (!Polyfill.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/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Polyfill from './polyfill'\nimport {\n makeArray\n} from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst findFn = Polyfill.find\nconst findOne = Polyfill.findOne\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 if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter((child) => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return element.closest(selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, (event) => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input:not([type=\"hidden\"])',\n ACTIVE : '.active',\n BUTTON : '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API : `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n 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 button.classList.add(ClassName.FOCUS)\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.remove(ClassName.FOCUS)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, (chr) => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach((key) => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true,\n touch : true\n}\n\nconst DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean',\n touch : 'boolean'\n}\n\nconst Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n}\n\nconst Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHSTART : `touchstart${EVENT_KEY}`,\n TOUCHMOVE : `touchmove${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n POINTERDOWN : `pointerdown${EVENT_KEY}`,\n POINTERUP : `pointerup${EVENT_KEY}`,\n DRAG_START : `dragstart${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item',\n POINTER_EVENT : 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n ITEM_IMG : '.carousel-item img',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH : 'touch',\n PEN : 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, (event) => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, (event) => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = (event) => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = (event) => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = (event) => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach((itemImg) => {\n EventHandler.on(itemImg, Event.DRAG_START, (e) => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, (event) => start(event))\n EventHandler.on(this._element, Event.POINTERUP, (event) => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, (event) => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, (event) => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, (event) => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode\n ? makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode))\n : []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new Error(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle : true,\n parent : ''\n}\n\nconst DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n}\n\nconst Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n}\n\nconst Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n}\n\nconst Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter((foundElem) => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter((elem) => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter((elem) => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach((elemActive) => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach((element) => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (isElement(this._config.parent)) {\n parent = this._config.parent\n\n // it's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined' || typeof this._config.parent[0] !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(this._config.parent)\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach((element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach((elem) => {\n if (!isOpen) {\n elem.classList.add(ClassName.COLLAPSED)\n } else {\n elem.classList.remove(ClassName.COLLAPSED)\n }\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach((element) => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.7\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\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\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 {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n}\n\nconst Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n}\n\nconst DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach((elem) => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach((elem) => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n}\n\nconst DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE : 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n DIALOG : '.modal-dialog',\n MODAL_BODY : '.modal-body',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, (event) => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, (event) => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach((htmlElement) => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE)\n ? ClassName.FADE\n : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach((element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach((element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach((element) => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach((element) => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n } else {\n document.body.style.paddingRight = ''\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY)\n ? 'toggle' : {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, (showEvent) => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n makeArray\n} from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach((attr) => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\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\n\nconst DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string|function)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)',\n sanitize : 'boolean',\n sanitizeFn : '(null|function)',\n whiteList : 'object'\n}\n\nconst AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n}\n\nconst Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent',\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW : 'show',\n OUT : 'out'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n TOOLTIP_ARROW : '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n}\n\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot !== null\n ? shadowRoot.contains(this.element)\n : this.element.ownerDocument.documentElement.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach((element) => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach((element) => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach((dataAttr) => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map((token) => token.trim())\n .forEach((tClass) => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n}\n\nconst ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map((token) => token.trim())\n .forEach((tClass) => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset : 10,\n method : 'auto',\n target : ''\n}\n\nconst DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n}\n\nconst Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n}\n\nconst Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\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.id\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\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 : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\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 return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map((selector) => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach((listGroup) => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach((item) => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach((navItem) => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach((item) => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter((node) => node.classList.contains(ClassName.ACTIVE))\n .forEach((node) => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach((spy) => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : ':scope > li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL')\n ? SelectorEngine.find(Selector.ACTIVE_UL, container)\n : SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach((dropdown) => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE : 'fade',\n HIDE : 'hide',\n SHOW : 'show',\n SHOWING : 'showing'\n}\n\nconst DefaultType = {\n animation : 'boolean',\n autohide : 'boolean',\n delay : 'number'\n}\n\nconst Default = {\n animation : true,\n autohide : true,\n delay : 500\n}\n\nconst Selector = {\n DATA_DISMISS : '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport ScrollSpy from './scrollspy'\nimport Tab from './tab'\nimport Toast from './toast'\nimport Tooltip from './tooltip'\n\nexport {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","jQuery","window","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","err","getTransitionDurationFromElement","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","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Polyfill","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","find","Element","prototype","querySelectorAll","findOne","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","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","uidList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","evt","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","findFn","NODE_TEXT","SelectorEngine","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","MENULEFT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","TypeError","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP","TOOLTIP_INNER","TOOLTIP_ARROW","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DROPDOWN_MENU","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","SHOWING","autohide","Toast","withoutTimeout","_close"],"mappings":"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;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE;EACnB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,eAAe;EACvB;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;EAChD;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,cAAc;EACrC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb;EACA,IAAI,OAAO,EAAE,WAAW;EACxB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,MAAM;EACpB;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,UAAU;EACjC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,KAAK;EAClB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,IAAI;EACzB;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,QAAQ;EACf;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,OAAO;EACd,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,UAAU,EAAE;EACd;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,UAAU;EAClB;EACA,IAAI,MAAM,EAAE,gBAAgB;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,SAAS;EAC9B,GAAG;EACH,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,GAAG;EACf;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,QAAQ;;EAErB;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,KAAK;;EAEtB;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,IA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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/eventHandler.js","../../js/src/dom/selectorEngine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n 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 makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/**\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 {\n getUID\n} from '../util/index'\n\n/* istanbul ignore next */\nconst Polyfill = (() => {\n // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\n const 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\n let find = Element.prototype.querySelectorAll\n let findOne = Element.prototype.querySelector\n\n const scopeSelectorRegex = /:scope\\b/\n const supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n })()\n\n if (!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\n return {\n defaultPreventedPreservedOnDispatch,\n find,\n findOne\n }\n})()\n\nexport default Polyfill\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from '../util/index'\nimport Polyfill from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidList = Object.keys(events)\n\n for (let i = 0; i < uidList.length; i++) {\n const uid = uidList[i]\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = 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 (!Polyfill.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/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Polyfill from './polyfill'\nimport {\n makeArray\n} from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst { find: findFn, findOne } = Polyfill\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 if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return element.closest(selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.add(ClassName.FOCUS)\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.remove(ClassName.FOCUS)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.7\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\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\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 {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n makeArray\n} from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","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","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Polyfill","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","find","Element","prototype","querySelectorAll","findOne","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","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","uidList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","evt","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","findFn","NODE_TEXT","SelectorEngine","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","TOOLTIP_ARROW","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","SHOWING","autohide","Toast","withoutTimeout","_close"],"mappings":"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AO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,eAAe;EACvB;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC;EAChD;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,cAAc;EACrC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,KAAK;EACb;EACA,IAAI,OAAO,EAAE,WAAW;EACxB,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,EAAE,MAAM;EACpB;EACA;EACA;EACA;EACA,IAAI,OAAO,EAAE,CAAC;EACd;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,iBAAiB,EAAE,UAAU;EACjC,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,KAAK,EAAE;EACT;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,KAAK;EAClB;EACA,IAAI,EAAE,EAAE,KAAK;EACb,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,IAAI,EAAE;EACR;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,IAAI;EACZ,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,YAAY,EAAE;EAChB;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,YAAY;EACpB;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,IAAI;EACzB;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,QAAQ;EACf;EACA;EACA;EACA;EACA;EACA,IAAI,CAAC,EAAE,OAAO;EACd,GAAG;;EAEH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,UAAU,EAAE;EACd;EACA,IAAI,KAAK,EAAE,GAAG;EACd;EACA,IAAI,OAAO,EAAE,IAAI;EACjB;EACA,IAAI,EAAE,EAAE,UAAU;EAClB;EACA,IAAI,MAAM,EAAE,gBAAgB;EAC5B;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,eAAe,EAAE,SAAS;EAC9B,GAAG;EACH,CAAC,CAAC;;EAEF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAI,QAAQ,GAAG;EACf;EACA;EACA;EACA;EACA,EAAE,SAAS,EAAE,QAAQ;;EAErB;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,KAAK;;EAEtB;EACA;EACA;EACA;EACA,EAAE,aAAa,EAAE,IAAI;;EAErB;EACA;EACA;EACA;EACA;EACA,EAAE,eAAe,EAAE,KAAK;;EAExB;EACA;EACA;EACA;EACA;EACA;EACA,EAAE,QAAQ,EAAE,SAAS,QAAQ,GAAG,EAAE;;E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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 404a17788e..a6112f4792 100644
--- a/dist/js/bootstrap.bundle.min.js
+++ b/dist/js/bootstrap.bundle.min.js
@@ -3,5 +3,5 @@
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).bootstrap={})}(this,function(t){"use strict";function e(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function n(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),o.forEach(function(e){i(t,e,n[e])})}return t}var r,s,a="transitionend",l=window.jQuery,c=function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},f=function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},u=function(t){if(!t)return 0;var e=window.getComputedStyle(t),n=e.transitionDuration,i=e.transitionDelay,o=parseFloat(n),r=parseFloat(i);return o||r?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},h=function(t){t.dispatchEvent(new Event(a))},d=function(t){return(t[0]||t).nodeType},p=function(t,e){var n=!1,i=e+5;t.addEventListener(a,function e(){n=!0,t.removeEventListener(a,e)}),setTimeout(function(){n||h(t)},i)},g=function(t,e,n){Object.keys(n).forEach(function(i){var o,r=n[i],s=e[i],a=s&&d(s)?"element":(o=s,{}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+r+'".')})},m=function(t){return t?[].slice.call(t):[]},_=function(t){return!!t&&(!!(t.style&&t.parentNode&&t.parentNode.style)&&("none"!==t.style.display&&"none"!==t.parentNode.style.display&&"hidden"!==t.style.visibility))},v=function(){return function(){}},b=function(t){return t.offsetHeight},y=(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)}}}),E={setData:function(t,e,n){y.set(t,e,n)},getData:function(t,e){return y.get(t,e)},removeData:function(t,e){y.delete(t,e)}},w=function(){var t,e,n=(t=new CustomEvent("Bootstrap",{cancelable:!0}),(e=document.createElement("div")).addEventListener("Bootstrap",function(){return null}),t.preventDefault(),e.dispatchEvent(t),t.defaultPrevented),i=Element.prototype.querySelectorAll,o=Element.prototype.querySelector,r=/:scope\b/;return function(){var t=document.createElement("div");try{t.querySelectorAll(":scope *")}catch(t){return!1}return!0}()||(i=function(t){if(!r.test(t))return this.querySelectorAll(t);var e=Boolean(this.id);e||(this.id=c("scope"));var n=null;try{t=t.replace(r,"#"+this.id),n=this.querySelectorAll(t)}finally{e||this.removeAttribute("id")}return n},o=function(t){if(!r.test(t))return this.querySelector(t);var e=i.call(this,t);return void 0!==e[0]?e[0]:null}),{defaultPreventedPreservedOnDispatch:n,find:i,findOne:o}}(),D=/[^.]*(?=\..*)\.|.*/,T=/\..*/,I=/^key/,A=/::\d+$/,O={},S=1,L={mouseenter:"mouseover",mouseleave:"mouseout"},C=["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 N(t,e){return e&&e+"::"+S++||t.uidEvent||S++}function k(t){var e=N(t);return t.uidEvent=e,O[e]=O[e]||{}}function P(t,e){null===t.which&&I.test(t.type)&&(t.which=null!==t.charCode?t.charCode:t.keyCode),t.delegateTarget=e}function x(t,e,n){void 0===n&&(n=null);for(var i=Object.keys(t),o=0;o<i.length;o++){var r=i[o],s=t[r];if(s.originalHandler===e&&s.delegationSelector===n)return t[r]}return null}function H(t,e,n){var i="string"==typeof e,o=i?n:e,r=t.replace(T,""),s=L[r];return s&&(r=s),C.indexOf(r)>-1||(r=t),[i,o,r]}function M(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var r=H(e,n,i),s=r[0],a=r[1],l=r[2],c=k(t),f=c[l]||(c[l]={}),u=x(f,a,s?n:null);if(u)u.oneOff=u.oneOff&&o;else{var h=N(a,e.replace(D,"")),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 P(o,s),i.oneOff&&R.off(t,o.type,n),n.apply(s,[o]);return null}}(t,n,i):function(t,e){return function n(i){return P(i,t),n.oneOff&&R.off(t,i.type,e),e.apply(t,[i])}}(t,n);d.delegationSelector=s?n:null,d.originalHandler=a,d.oneOff=o,d.uidEvent=h,f[h]=d,t.addEventListener(l,d,s)}}}function j(t,e,n,i,o){var r=x(e[n],i,o);null!==r&&(t.removeEventListener(n,r,Boolean(o)),delete e[n][r.uidEvent])}var R={on:function(t,e,n,i){M(t,e,n,i,!1)},one:function(t,e,n,i){M(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=H(e,n,i),r=o[0],s=o[1],a=o[2],l=a!==e,c=k(t),f="."===e.charAt(0);if(void 0===s){f&&Object.keys(c).forEach(function(n){!function(t,e,n,i){var o=e[n]||{};Object.keys(o).forEach(function(r){if(r.indexOf(i)>-1){var s=o[r];j(t,e,n,s.originalHandler,s.delegationSelector)}})}(t,c,n,e.substr(1))});var u=c[a]||{};Object.keys(u).forEach(function(n){var i=n.replace(A,"");if(!l||e.indexOf(i)>-1){var o=u[n];j(t,c,a,o.originalHandler,o.delegationSelector)}})}else{if(!c||!c[a])return;j(t,c,a,s,r?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=e.replace(T,""),r=e!==o,s=C.indexOf(o)>-1,a=!0,c=!0,f=!1,u=null;return r&&void 0!==l&&(i=l.Event(e,n),l(t).trigger(i),a=!i.isPropagationStopped(),c=!i.isImmediatePropagationStopped(),f=i.isDefaultPrevented()),s?(u=document.createEvent("HTMLEvents")).initEvent(o,a,!0):u=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]}})}),f&&(u.preventDefault(),w.defaultPreventedPreservedOnDispatch||Object.defineProperty(u,"defaultPrevented",{get:function(){return!0}})),c&&t.dispatchEvent(u),u.defaultPrevented&&void 0!==i&&i.preventDefault(),u}},W=w.find,F=w.findOne,U={matches:function(t,e){return t.matches(e)},find:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:W.call(e,t)},findOne:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:F.call(e,t)},children:function(t,e){var n=this;if("string"!=typeof e)return null;var i=m(t.children);return i.filter(function(t){return n.matches(t,e)})},parents:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.parentNode;return n},closest:function(t,e){return"string"!=typeof e?null:t.closest(e)},prev:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.previousSibling;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.previousSibling;return n}},B="bs.alert",K="."+B,V={CLOSE:"close"+K,CLOSED:"closed"+K,CLICK_DATA_API:"click"+K+".data-api"},Y="alert",Q="fade",G="show",q=function(){function t(t){this._element=t,this._element&&E.setData(t,B,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(){E.removeData(this._element,B),this._element=null},e._getRootElement=function(t){var e=f(t),n=!1;return e&&(n=U.findOne(e)),n||(n=U.closest(t,"."+Y)),n},e._triggerCloseEvent=function(t){return R.trigger(t,V.CLOSE)},e._removeElement=function(t){var e=this;if(t.classList.remove(G),t.classList.contains(Q)){var n=u(t);R.one(t,a,function(n){return e._destroyElement(t,n)}),p(t,n)}else this._destroyElement(t)},e._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),R.trigger(t,V.CLOSED)},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,B);n||(n=new t(this)),"close"===e&&n[e](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},t._getInstance=function(t){return E.getData(t,B)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(R.on(document,V.CLICK_DATA_API,'[data-dismiss="alert"]',q._handleDismiss(new q)),void 0!==l){var X=l.fn.alert;l.fn.alert=q._jQueryInterface,l.fn.alert.Constructor=q,l.fn.alert.noConflict=function(){return l.fn.alert=X,q._jQueryInterface}}var z="bs.button",Z="."+z,$="active",J="btn",tt="focus",et='[data-toggle^="button"]',nt='[data-toggle="buttons"]',it='input:not([type="hidden"])',ot=".active",rt=".btn",st={CLICK_DATA_API:"click"+Z+".data-api",FOCUS_DATA_API:"focus"+Z+".data-api",BLUR_DATA_API:"blur"+Z+".data-api"},at=function(){function t(t){this._element=t,E.setData(t,z,this)}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=U.closest(this._element,nt);if(n){var i=U.findOne(it,this._element);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains($))t=!1;else{var o=U.findOne(ot,n);o&&o.classList.remove($)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains($),R.trigger(i,"change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains($)),t&&this._element.classList.toggle($)},e.dispose=function(){E.removeData(this._element,z),this._element=null},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,z);n||(n=new t(this)),"toggle"===e&&n[e]()})},t._getInstance=function(t){return E.getData(t,z)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(R.on(document,st.CLICK_DATA_API,et,function(t){t.preventDefault();var e=t.target;e.classList.contains(J)||(e=U.closest(e,rt));var n=E.getData(e,z);n||(n=new at(e),E.setData(e,z,n)),n.toggle()}),R.on(document,st.FOCUS_DATA_API,et,function(t){U.closest(t.target,rt).classList.add(tt)}),R.on(document,st.BLUR_DATA_API,et,function(t){U.closest(t.target,rt).classList.remove(tt)}),void 0!==l){var lt=l.fn.button;l.fn.button=at._jQueryInterface,l.fn.button.Constructor=at,l.fn.button.noConflict=function(){return l.fn.button=lt,at._jQueryInterface}}function ct(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function ft(t){return t.replace(/[A-Z]/g,function(t){return t.toLowerCase()})}var ut={setDataAttribute:function(t,e,n){t.setAttribute("data-"+ft(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+ft(e))},getDataAttributes:function(t){if(!t)return{};var e=o({},t.dataset);return Object.keys(e).forEach(function(t){e[t]=ct(e[t])}),e},getDataAttribute:function(t,e){return ct(t.getAttribute("data-"+ft(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))}},ht="carousel",dt="bs.carousel",pt="."+dt,gt={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},mt={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},_t="next",vt="prev",bt="left",yt="right",Et={SLIDE:"slide"+pt,SLID:"slid"+pt,KEYDOWN:"keydown"+pt,MOUSEENTER:"mouseenter"+pt,MOUSELEAVE:"mouseleave"+pt,TOUCHSTART:"touchstart"+pt,TOUCHMOVE:"touchmove"+pt,TOUCHEND:"touchend"+pt,POINTERDOWN:"pointerdown"+pt,POINTERUP:"pointerup"+pt,DRAG_START:"dragstart"+pt,LOAD_DATA_API:"load"+pt+".data-api",CLICK_DATA_API:"click"+pt+".data-api"},wt="carousel",Dt="active",Tt="slide",It="carousel-item-right",At="carousel-item-left",Ot="carousel-item-next",St="carousel-item-prev",Lt="pointer-event",Ct={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",ITEM_IMG:".carousel-item img",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},Nt={TOUCH:"touch",PEN:"pen"},kt=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=U.findOne(Ct.INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),E.setData(t,dt,this)}var e=t.prototype;return e.next=function(){this._isSliding||this._slide(_t)},e.nextWhenVisible=function(){!document.hidden&&_(this._element)&&this.next()},e.prev=function(){this._isSliding||this._slide(vt)},e.pause=function(t){t||(this._isPaused=!0),U.findOne(Ct.NEXT_PREV,this._element)&&(h(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=U.findOne(Ct.ACTIVE_ITEM,this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)R.one(this._element,Et.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=t>n?_t:vt;this._slide(i,this._items[t])}},e.dispose=function(){R.off(this._element,pt),E.removeData(this._element,dt),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=o({},gt,t),g(ht,t,mt),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&R.on(this._element,Et.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(R.on(this._element,Et.MOUSEENTER,function(e){return t.pause(e)}),R.on(this._element,Et.MOUSELEAVE,function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&Nt[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&Nt[e.pointerType.toUpperCase()]&&(t.touchDeltaX=e.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval))};m(U.find(Ct.ITEM_IMG,this._element)).forEach(function(t){R.on(t,Et.DRAG_START,function(t){return t.preventDefault()})}),this._pointerEvent?(R.on(this._element,Et.POINTERDOWN,function(t){return e(t)}),R.on(this._element,Et.POINTERUP,function(t){return n(t)}),this._element.classList.add(Lt)):(R.on(this._element,Et.TOUCHSTART,function(t){return e(t)}),R.on(this._element,Et.TOUCHMOVE,function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)}),R.on(this._element,Et.TOUCHEND,function(t){return n(t)}))}},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?m(U.find(Ct.ITEM,t.parentNode)):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n=t===_t,i=t===vt,o=this._getItemIndex(e),r=this._items.length-1;if((i&&0===o||n&&o===r)&&!this._config.wrap)return e;var s=(o+(t===vt?-1:1))%this._items.length;return-1===s?this._items[this._items.length-1]:this._items[s]},e._triggerSlideEvent=function(t,e){var n=this._getItemIndex(t),i=this._getItemIndex(U.findOne(Ct.ACTIVE_ITEM,this._element));return R.trigger(this._element,Et.SLIDE,{relatedTarget:t,direction:e,from:i,to:n})},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=U.find(Ct.ACTIVE,this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove(Dt);var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add(Dt)}},e._slide=function(t,e){var n,i,o,r=this,s=U.findOne(Ct.ACTIVE_ITEM,this._element),l=this._getItemIndex(s),c=e||s&&this._getItemByDirection(t,s),f=this._getItemIndex(c),h=Boolean(this._interval);if(t===_t?(n=At,i=Ot,o=bt):(n=It,i=St,o=yt),c&&c.classList.contains(Dt))this._isSliding=!1;else if(!this._triggerSlideEvent(c,o).defaultPrevented&&s&&c){if(this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(c),this._element.classList.contains(Tt)){c.classList.add(i),b(c),s.classList.add(n),c.classList.add(n);var d=parseInt(c.getAttribute("data-interval"),10);d?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=d):this._config.interval=this._config.defaultInterval||this._config.interval;var g=u(s);R.one(s,a,function(){c.classList.remove(n),c.classList.remove(i),c.classList.add(Dt),s.classList.remove(Dt),s.classList.remove(i),s.classList.remove(n),r._isSliding=!1,setTimeout(function(){R.trigger(r._element,Et.SLID,{relatedTarget:c,direction:o,from:l,to:f})},0)}),p(s,g)}else s.classList.remove(Dt),c.classList.add(Dt),this._isSliding=!1,R.trigger(this._element,Et.SLID,{relatedTarget:c,direction:o,from:l,to:f});h&&this.cycle()}},t._carouselInterface=function(e,n){var i=E.getData(e,dt),r=o({},gt,ut.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 Error('No method named "'+s+'"');i[s]()}else r.interval&&r.ride&&(i.pause(),i.cycle())},t._jQueryInterface=function(e){return this.each(function(){t._carouselInterface(this,e)})},t._dataApiClickHandler=function(e){var n=f(this);if(n){var i=U.findOne(n);if(i&&i.classList.contains(wt)){var r=o({},ut.getDataAttributes(i),ut.getDataAttributes(this)),s=this.getAttribute("data-slide-to");s&&(r.interval=!1),t._carouselInterface(i,r),s&&E.getData(i,dt).to(s),e.preventDefault()}}},t._getInstance=function(t){return E.getData(t,dt)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return gt}}]),t}();if(R.on(document,Et.CLICK_DATA_API,Ct.DATA_SLIDE,kt._dataApiClickHandler),R.on(window,Et.LOAD_DATA_API,function(){for(var t=m(U.find(Ct.DATA_RIDE)),e=0,n=t.length;e<n;e++)kt._carouselInterface(t[e],E.getData(t[e],dt))}),void 0!==l){var Pt=l.fn[ht];l.fn[ht]=kt._jQueryInterface,l.fn[ht].Constructor=kt,l.fn[ht].noConflict=function(){return l.fn[ht]=Pt,kt._jQueryInterface}}var xt="collapse",Ht="bs.collapse",Mt="."+Ht,jt={toggle:!0,parent:""},Rt={toggle:"boolean",parent:"(string|element)"},Wt={SHOW:"show"+Mt,SHOWN:"shown"+Mt,HIDE:"hide"+Mt,HIDDEN:"hidden"+Mt,CLICK_DATA_API:"click"+Mt+".data-api"},Ft="show",Ut="collapse",Bt="collapsing",Kt="collapsed",Vt="width",Yt="height",Qt={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},Gt=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=m(U.find('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=m(U.find(Qt.DATA_TOGGLE)),i=0,o=n.length;i<o;i++){var r=n[i],s=f(r),a=m(U.find(s)).filter(function(e){return e===t});null!==s&&a.length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle(),E.setData(t,Ht,this)}var e=t.prototype;return e.toggle=function(){this._element.classList.contains(Ft)?this.hide():this.show()},e.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains(Ft)){var n,i;this._parent&&0===(n=m(U.find(Qt.ACTIVES,this._parent)).filter(function(t){return"string"==typeof e._config.parent?t.getAttribute("data-parent")===e._config.parent:t.classList.contains(Ut)})).length&&(n=null);var o=U.findOne(this._selector);if(n){var r=n.filter(function(t){return o!==t});if((i=r[0]?E.getData(r[0],Ht):null)&&i._isTransitioning)return}if(!R.trigger(this._element,Wt.SHOW).defaultPrevented){n&&n.forEach(function(e){o!==e&&t._collapseInterface(e,"hide"),i||E.setData(e,Ht,null)});var s=this._getDimension();this._element.classList.remove(Ut),this._element.classList.add(Bt),this._element.style[s]=0,this._triggerArray.length&&this._triggerArray.forEach(function(t){t.classList.remove(Kt),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);var l="scroll"+(s[0].toUpperCase()+s.slice(1)),c=u(this._element);R.one(this._element,a,function(){e._element.classList.remove(Bt),e._element.classList.add(Ut),e._element.classList.add(Ft),e._element.style[s]="",e.setTransitioning(!1),R.trigger(e._element,Wt.SHOWN)}),p(this._element,c),this._element.style[s]=this._element[l]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains(Ft)&&!R.trigger(this._element,Wt.HIDE).defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",b(this._element),this._element.classList.add(Bt),this._element.classList.remove(Ut),this._element.classList.remove(Ft);var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],r=f(o);if(null!==r)U.findOne(r).classList.contains(Ft)||(o.classList.add(Kt),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var s=u(this._element);R.one(this._element,a,function(){t.setTransitioning(!1),t._element.classList.remove(Bt),t._element.classList.add(Ut),R.trigger(t._element,Wt.HIDDEN)}),p(this._element,s)}},e.setTransitioning=function(t){this._isTransitioning=t},e.dispose=function(){E.removeData(this._element,Ht),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(t){return(t=o({},jt,t)).toggle=Boolean(t.toggle),g(xt,t,Rt),t},e._getDimension=function(){return this._element.classList.contains(Vt)?Vt:Yt},e._getParent=function(){var e,n=this;d(this._config.parent)?(e=this._config.parent,void 0===this._config.parent.jquery&&void 0===this._config.parent[0]||(e=this._config.parent[0])):e=U.findOne(this._config.parent);var i='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return m(U.find(i,e)).forEach(function(e){n._addAriaAndCollapsedClass(t._getTargetFromElement(e),[e])}),e},e._addAriaAndCollapsedClass=function(t,e){if(t){var n=t.classList.contains(Ft);e.length&&e.forEach(function(t){n?t.classList.remove(Kt):t.classList.add(Kt),t.setAttribute("aria-expanded",n)})}},t._getTargetFromElement=function(t){var e=f(t);return e?U.findOne(e):null},t._collapseInterface=function(e,n){var i=E.getData(e,Ht),r=o({},jt,ut.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 Error('No method named "'+n+'"');i[n]()}},t._jQueryInterface=function(e){return this.each(function(){t._collapseInterface(this,e)})},t._getInstance=function(t){return E.getData(t,Ht)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return jt}}]),t}();if(R.on(document,Wt.CLICK_DATA_API,Qt.DATA_TOGGLE,function(t){"A"===t.target.tagName&&t.preventDefault();var e=ut.getDataAttributes(this),n=f(this);m(U.find(n)).forEach(function(t){var n,i=E.getData(t,Ht);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)})}),void 0!==l){var qt=l.fn[xt];l.fn[xt]=Gt._jQueryInterface,l.fn[xt].Constructor=Gt,l.fn[xt].noConflict=function(){return l.fn[xt]=qt,Gt._jQueryInterface}}for(var Xt="undefined"!=typeof window&&"undefined"!=typeof document,zt=["Edge","Trident","Firefox"],Zt=0,$t=0;$t<zt.length;$t+=1)if(Xt&&navigator.userAgent.indexOf(zt[$t])>=0){Zt=1;break}var Jt=Xt&&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()},Zt))}};function te(t){return t&&"[object Function]"==={}.toString.call(t)}function ee(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function ne(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function ie(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=ee(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:ie(ne(t))}var oe=Xt&&!(!window.MSInputMethodContext||!document.documentMode),re=Xt&&/MSIE 10/.test(navigator.userAgent);function se(t){return 11===t?oe:10===t?re:oe||re}function ae(t){if(!t)return document.documentElement;for(var e=se(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"===ee(n,"position")?ae(n):n:t?t.ownerDocument.documentElement:document.documentElement}function le(t){return null!==t.parentNode?le(t.parentNode):t}function ce(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,r=document.createRange();r.setStart(i,0),r.setEnd(o,0);var s,a,l=r.commonAncestorContainer;if(t!==l&&e!==l||i.contains(o))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&ae(s.firstElementChild)!==s?ae(l):l;var c=le(t);return c.host?ce(c.host,e):ce(t,le(e).host)}function fe(t){var e="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var i=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||i)[e]}return t[e]}function ue(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 he(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],se(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function de(t){var e=t.body,n=t.documentElement,i=se(10)&&getComputedStyle(n);return{height:he("Height",e,n,i),width:he("Width",e,n,i)}}var pe=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},ge=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}}(),me=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},_e=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 ve(t){return _e({},t,{right:t.left+t.width,bottom:t.top+t.height})}function be(t){var e={};try{if(se(10)){e=t.getBoundingClientRect();var n=fe(t,"top"),i=fe(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?de(t.ownerDocument):{},s=r.width||t.clientWidth||o.right-o.left,a=r.height||t.clientHeight||o.bottom-o.top,l=t.offsetWidth-s,c=t.offsetHeight-a;if(l||c){var f=ee(t);l-=ue(f,"x"),c-=ue(f,"y"),o.width-=l,o.height-=c}return ve(o)}function ye(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=se(10),o="HTML"===e.nodeName,r=be(t),s=be(e),a=ie(t),l=ee(e),c=parseFloat(l.borderTopWidth,10),f=parseFloat(l.borderLeftWidth,10);n&&o&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var u=ve({top:r.top-s.top-c,left:r.left-s.left-f,width:r.width,height:r.height});if(u.marginTop=0,u.marginLeft=0,!i&&o){var h=parseFloat(l.marginTop,10),d=parseFloat(l.marginLeft,10);u.top-=c-h,u.bottom-=c-h,u.left-=f-d,u.right-=f-d,u.marginTop=h,u.marginLeft=d}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(u=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=fe(e,"top"),o=fe(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}(u,e)),u}function Ee(t){if(!t||!t.parentElement||se())return document.documentElement;for(var e=t.parentElement;e&&"none"===ee(e,"transform");)e=e.parentElement;return e||document.documentElement}function we(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=o?Ee(t):ce(t,e);if("viewport"===i)r=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=ye(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:fe(n),a=e?0:fe(n,"left");return ve({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:r})}(s,o);else{var a=void 0;"scrollParent"===i?"BODY"===(a=ie(ne(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=ye(a,s,o);if("HTML"!==a.nodeName||function t(e){var n=e.nodeName;if("BODY"===n||"HTML"===n)return!1;if("fixed"===ee(e,"position"))return!0;var i=ne(e);return!!i&&t(i)}(s))r=l;else{var c=de(t.ownerDocument),f=c.height,u=c.width;r.top+=l.top-l.marginTop,r.bottom=f+l.top,r.left+=l.left-l.marginLeft,r.right=u+l.left}}var h="number"==typeof(n=n||0);return r.left+=h?n:n.left||0,r.top+=h?n:n.top||0,r.right-=h?n:n.right||0,r.bottom-=h?n:n.bottom||0,r}function De(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=we(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 _e({key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight}),f=c.length>0?c[0].key:l[0].key,u=t.split("-")[1];return f+(u?"-"+u:"")}function Te(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return ye(n,i?Ee(e):ce(e,n),i)}function Ie(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 Ae(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 Oe(t,e,n){n=n.split("-")[0];var i=Ie(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[Ae(a)],o}function Se(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function Le(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=Se(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&&te(n)&&(e.offsets.popper=ve(e.offsets.popper),e.offsets.reference=ve(e.offsets.reference),e=n(e,t))}),e}function Ce(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 ke(t){var e=t.ownerDocument;return e?e.defaultView:window}function Pe(t,e,n,i){n.updateBound=i,ke(t).addEventListener("resize",n.updateBound,{passive:!0});var o=ie(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(ie(s.parentNode),n,i,o),o.push(s)}(o,"scroll",n.updateBound,n.scrollParents),n.scrollElement=o,n.eventsEnabled=!0,n}function xe(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,ke(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 He(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function Me(t,e){Object.keys(e).forEach(function(n){var i="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&He(e[n])&&(i="px"),t.style[n]=e[n]+i})}var je=Xt&&/Firefox/i.test(navigator.userAgent);function Re(t,e,n){var i=Se(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 We=["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"],Fe=We.slice(3);function Ue(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=Fe.indexOf(t),i=Fe.slice(n+1).concat(Fe.slice(0,n));return e?i.reverse():i}var Be={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function Ke(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(Se(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 ve(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){He(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))})}),o}var Ve={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var o=t.offsets,r=o.reference,s=o.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",f={start:me({},l,r[l]),end:me({},l,r[l]+r[c]-s[c])};t.offsets.popper=_e({},s,f[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,o=t.offsets,r=o.popper,s=o.reference,a=i.split("-")[0],l=void 0;return l=He(+n)?[+n,0]:Ke(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||ae(t.instance.popper);t.instance.reference===n&&(n=ae(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=we(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);o.top=r,o.left=s,o[i]=a,e.boundaries=l;var c=e.priority,f=t.offsets.popper,u={primary:function(t){var n=f[t];return f[t]<l[t]&&!e.escapeWithReference&&(n=Math.max(f[t],l[t])),me({},t,n)},secondary:function(t){var n="right"===t?"left":"top",i=f[n];return f[t]>l[t]&&!e.escapeWithReference&&(i=Math.min(f[n],l[t]-("right"===t?f.width:f.height))),me({},n,i)}};return c.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";f=_e({},f,u[e](t))}),t.offsets.popper=f,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<r(i[l])&&(t.offsets.popper[l]=r(i[l])-n[c]),n[l]>r(i[a])&&(t.offsets.popper[l]=r(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!Re(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(o),c=l?"height":"width",f=l?"Top":"Left",u=f.toLowerCase(),h=l?"left":"top",d=l?"bottom":"right",p=Ie(i)[c];a[d]-p<s[u]&&(t.offsets.popper[u]-=s[u]-(a[d]-p)),a[u]+p>s[d]&&(t.offsets.popper[u]+=a[u]+p-s[d]),t.offsets.popper=ve(t.offsets.popper);var g=a[u]+a[c]/2-p/2,m=ee(t.instance.popper),_=parseFloat(m["margin"+f],10),v=parseFloat(m["border"+f+"Width"],10),b=g-t.offsets.popper[u]-_-v;return b=Math.max(Math.min(s[c]-p,b),0),t.arrowElement=i,t.offsets.arrow=(me(n={},u,Math.round(b)),me(n,h,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(Ce(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=we(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=Ae(i),r=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case Be.FLIP:s=[i,o];break;case Be.CLOCKWISE:s=Ue(i);break;case Be.COUNTERCLOCKWISE:s=Ue(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=Ae(i);var c=t.offsets.popper,f=t.offsets.reference,u=Math.floor,h="left"===i&&u(c.right)>u(f.left)||"right"===i&&u(c.left)<u(f.right)||"top"===i&&u(c.bottom)>u(f.top)||"bottom"===i&&u(c.top)<u(f.bottom),d=u(c.left)<u(n.left),p=u(c.right)>u(n.right),g=u(c.top)<u(n.top),m=u(c.bottom)>u(n.bottom),_="left"===i&&d||"right"===i&&p||"top"===i&&g||"bottom"===i&&m,v=-1!==["top","bottom"].indexOf(i),b=!!e.flipVariations&&(v&&"start"===r&&d||v&&"end"===r&&p||!v&&"start"===r&&g||!v&&"end"===r&&m);(h||_||b)&&(t.flipped=!0,(h||_)&&(i=s[l+1]),b&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=i+(r?"-"+r:""),t.offsets.popper=_e({},t.offsets.popper,Oe(t.instance.popper,t.offsets.reference,t.placement)),t=Le(t.instance.modifiers,t,"flip"))}),t},behavior:"flip",padding:5,boundariesElement:"viewport"},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=Ae(e),t.offsets.popper=ve(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!Re(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=Se(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=Se(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=ae(t.instance.popper),l=be(a),c={position:o.position},f=function(t,e){var n=t.offsets,i=n.popper,o=n.reference,r=Math.round,s=Math.floor,a=function(t){return t},l=r(o.width),c=r(i.width),f=-1!==["left","right"].indexOf(t.placement),u=-1!==t.placement.indexOf("-"),h=e?f||u||l%2==c%2?r:s:a,d=e?r:a;return{left:h(l%2==1&&c%2==1&&!u&&e?i.left-1:i.left),top:d(i.top),bottom:d(i.bottom),right:h(i.right)}}(t,window.devicePixelRatio<2||!je),u="bottom"===n?"top":"bottom",h="right"===i?"left":"right",d=Ne("transform"),p=void 0,g=void 0;if(g="bottom"===u?"HTML"===a.nodeName?-a.clientHeight+f.bottom:-l.height+f.bottom:f.top,p="right"===h?"HTML"===a.nodeName?-a.clientWidth+f.right:-l.width+f.right:f.left,s&&d)c[d]="translate3d("+p+"px, "+g+"px, 0)",c[u]=0,c[h]=0,c.willChange="transform";else{var m="bottom"===u?-1:1,_="right"===h?-1:1;c[u]=g*m,c[h]=p*_,c.willChange=u+", "+h}var v={"x-placement":t.placement};return t.attributes=_e({},v,t.attributes),t.styles=_e({},c,t.styles),t.arrowStyles=_e({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return Me(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach(function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&Me(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){var r=Te(o,e,t,n.positionFixed),s=De(n.placement,r,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),Me(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]:{};pe(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=Jt(this.update.bind(this)),this.options=_e({},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(_e({},t.Defaults.modifiers,o.modifiers)).forEach(function(e){i.options.modifiers[e]=_e({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return _e({name:t},i.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&te(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 ge(t,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=Te(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=De(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=Oe(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=Le(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,Ce(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}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=Pe(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return xe.call(this)}}]),t}();Ye.Utils=("undefined"!=typeof window?window:global).PopperUtils,Ye.placements=We,Ye.Defaults=Ve;var Qe="dropdown",Ge="bs.dropdown",qe="."+Ge,Xe=new RegExp("38|40|27"),ze={HIDE:"hide"+qe,HIDDEN:"hidden"+qe,SHOW:"show"+qe,SHOWN:"shown"+qe,CLICK:"click"+qe,CLICK_DATA_API:"click"+qe+".data-api",KEYDOWN_DATA_API:"keydown"+qe+".data-api",KEYUP_DATA_API:"keyup"+qe+".data-api"},Ze="disabled",$e="show",Je="dropup",tn="dropright",en="dropleft",nn="dropdown-menu-right",on="position-static",rn='[data-toggle="dropdown"]',sn=".dropdown form",an=".dropdown-menu",ln=".navbar-nav",cn=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",fn="top-start",un="top-end",hn="bottom-start",dn="bottom-end",pn="right-start",gn="left-start",mn={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},_n={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},vn=function(){function t(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners(),E.setData(t,Ge,this)}var e=t.prototype;return e.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains(Ze)){var e=t._getParentFromElement(this._element),n=this._menu.classList.contains($e);if(t._clearMenus(),!n){var i={relatedTarget:this._element};if(!R.trigger(e,ze.SHOW,i).defaultPrevented){if(!this._inNavbar){if(void 0===Ye)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var o=this._element;"parent"===this._config.reference?o=e:d(this._config.reference)&&(o=this._config.reference,void 0!==this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&e.classList.add(on),this._popper=new Ye(o,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&!m(U.closest(e,ln)).length&&m(document.body.children).forEach(function(t){return R.on(t,"mouseover",null,function(){})}),this._element.focus(),this._element.setAttribute("aria-expanded",!0),ut.toggleClass(this._menu,$e),ut.toggleClass(e,$e),R.trigger(e,ze.SHOWN,i)}}}},e.show=function(){if(!(this._element.disabled||this._element.classList.contains(Ze)||this._menu.classList.contains($e))){var e=t._getParentFromElement(this._element),n={relatedTarget:this._element};R.trigger(e,ze.SHOW,n).defaultPrevented||(ut.toggleClass(this._menu,$e),ut.toggleClass(e,$e),R.trigger(e,ze.SHOWN,n))}},e.hide=function(){if(!this._element.disabled&&!this._element.classList.contains(Ze)&&this._menu.classList.contains($e)){var e=t._getParentFromElement(this._element),n={relatedTarget:this._element};R.trigger(e,ze.HIDE,n).defaultPrevented||(ut.toggleClass(this._menu,$e),ut.toggleClass(e,$e),R.trigger(e,ze.HIDDEN,n))}},e.dispose=function(){E.removeData(this._element,Ge),R.off(this._element,qe),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},e.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},e._addEventListeners=function(){var t=this;R.on(this._element,ze.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},e._getConfig=function(t){return t=o({},this.constructor.Default,ut.getDataAttributes(this._element),t),g(Qe,t,this.constructor.DefaultType),t},e._getMenuElement=function(){if(!this._menu){var e=t._getParentFromElement(this._element);e&&(this._menu=U.findOne(an,e))}return this._menu},e._getPlacement=function(){var t=this._element.parentNode,e=hn;return t.classList.contains(Je)?(e=fn,this._menu.classList.contains(nn)&&(e=un)):t.classList.contains(tn)?e=pn:t.classList.contains(en)?e=gn:this._menu.classList.contains(nn)&&(e=dn),e},e._detectNavbar=function(){return Boolean(U.closest(this._element,".navbar"))},e._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},e._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),t},t._dropdownInterface=function(e,n){var i=E.getData(e,Ge);if(i||(i=new t(e,"object"==typeof n?n:null)),"string"==typeof n){if(void 0===i[n])throw new Error('No method named "'+n+'"');i[n]()}},t._jQueryInterface=function(e){return this.each(function(){t._dropdownInterface(this,e)})},t._clearMenus=function(e){if(!e||3!==e.which&&("keyup"!==e.type||9===e.which))for(var n=m(U.find(rn)),i=0,o=n.length;i<o;i++){var r=t._getParentFromElement(n[i]),s=E.getData(n[i],Ge),a={relatedTarget:n[i]};if(e&&"click"===e.type&&(a.clickEvent=e),s){var l=s._menu;if(r.classList.contains($e))if(!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&r.contains(e.target)))R.trigger(r,ze.HIDE,a).defaultPrevented||("ontouchstart"in document.documentElement&&m(document.body.children).forEach(function(t){return R.off(t,"mouseover",null,function(){})}),n[i].setAttribute("aria-expanded","false"),l.classList.remove($e),r.classList.remove($e),R.trigger(r,ze.HIDDEN,a))}}},t._getParentFromElement=function(t){var e,n=f(t);return n&&(e=U.findOne(n)),e||t.parentNode},t._dataApiKeydownHandler=function(e){if((/input|textarea/i.test(e.target.tagName)?!(32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||U.closest(e.target,an))):Xe.test(e.which))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!this.classList.contains(Ze))){var n=t._getParentFromElement(this),i=n.classList.contains($e);if(!i||i&&(27===e.which||32===e.which))return 27===e.which&&R.trigger(U.findOne(rn,n),"focus"),void t._clearMenus();var o=m(U.find(cn,n));if(o.length){var r=o.indexOf(e.target);38===e.which&&r>0&&r--,40===e.which&&r<o.length-1&&r++,r<0&&(r=0),o[r].focus()}}},t._getInstance=function(t){return E.getData(t,Ge)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return mn}},{key:"DefaultType",get:function(){return _n}}]),t}();if(R.on(document,ze.KEYDOWN_DATA_API,rn,vn._dataApiKeydownHandler),R.on(document,ze.KEYDOWN_DATA_API,an,vn._dataApiKeydownHandler),R.on(document,ze.CLICK_DATA_API,vn._clearMenus),R.on(document,ze.KEYUP_DATA_API,vn._clearMenus),R.on(document,ze.CLICK_DATA_API,rn,function(t){t.preventDefault(),t.stopPropagation(),vn._dropdownInterface(this,"toggle")}),R.on(document,ze.CLICK_DATA_API,sn,function(t){return t.stopPropagation()}),void 0!==l){var bn=l.fn[Qe];l.fn[Qe]=vn._jQueryInterface,l.fn[Qe].Constructor=vn,l.fn[Qe].noConflict=function(){return l.fn[Qe]=bn,vn._jQueryInterface}}var yn="bs.modal",En="."+yn,wn={backdrop:!0,keyboard:!0,focus:!0,show:!0},Dn={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Tn={HIDE:"hide"+En,HIDDEN:"hidden"+En,SHOW:"show"+En,SHOWN:"shown"+En,FOCUSIN:"focusin"+En,RESIZE:"resize"+En,CLICK_DISMISS:"click.dismiss"+En,KEYDOWN_DISMISS:"keydown.dismiss"+En,MOUSEUP_DISMISS:"mouseup.dismiss"+En,MOUSEDOWN_DISMISS:"mousedown.dismiss"+En,CLICK_DATA_API:"click"+En+".data-api"},In="modal-dialog-scrollable",An="modal-scrollbar-measure",On="modal-backdrop",Sn="modal-open",Ln="fade",Cn="show",Nn={DIALOG:".modal-dialog",MODAL_BODY:".modal-body",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top"},kn=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=U.findOne(Nn.DIALOG,t),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,E.setData(t,yn,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(Ln)&&(this._isTransitioning=!0);var n=R.trigger(this._element,Tn.SHOW,{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),R.on(this._element,Tn.CLICK_DISMISS,Nn.DATA_DISMISS,function(t){return e.hide(t)}),R.on(this._dialog,Tn.MOUSEDOWN_DISMISS,function(){R.one(e._element,Tn.MOUSEUP_DISMISS,function(t){t.target===e._element&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},e.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=R.trigger(this._element,Tn.HIDE);if(this._isShown&&!n.defaultPrevented){this._isShown=!1;var i=this._element.classList.contains(Ln);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),R.off(document,Tn.FOCUSIN),this._element.classList.remove(Cn),R.off(this._element,Tn.CLICK_DISMISS),R.off(this._dialog,Tn.MOUSEDOWN_DISMISS),i){var o=u(this._element);R.one(this._element,a,function(t){return e._hideModal(t)}),p(this._element,o)}else this._hideModal()}}},e.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return R.off(t,En)}),R.off(document,Tn.FOCUSIN),E.removeData(this._element,yn),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},e.handleUpdate=function(){this._adjustDialog()},e._getConfig=function(t){return t=o({},wn,t),g("modal",t,Dn),t},e._showElement=function(t){var e=this,n=this._element.classList.contains(Ln);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(In)?U.findOne(Nn.MODAL_BODY,this._dialog).scrollTop=0:this._element.scrollTop=0,n&&b(this._element),this._element.classList.add(Cn),this._config.focus&&this._enforceFocus();var i=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,R.trigger(e._element,Tn.SHOWN,{relatedTarget:t})};if(n){var o=u(this._dialog);R.one(this._dialog,a,i),p(this._dialog,o)}else i()},e._enforceFocus=function(){var t=this;R.off(document,Tn.FOCUSIN),R.on(document,Tn.FOCUSIN,function(e){document===e.target||t._element===e.target||t._element.contains(e.target)||t._element.focus()})},e._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?R.on(this._element,Tn.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):this._isShown||R.off(this._element,Tn.KEYDOWN_DISMISS)},e._setResizeEvent=function(){var t=this;this._isShown?R.on(window,Tn.RESIZE,function(e){return t.handleUpdate(e)}):R.off(window,Tn.RESIZE)},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){document.body.classList.remove(Sn),t._resetAdjustments(),t._resetScrollbar(),R.trigger(t._element,Tn.HIDDEN)})},e._removeBackdrop=function(){this._backdrop&&(this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null)},e._showBackdrop=function(t){var e=this,n=this._element.classList.contains(Ln)?Ln:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=On,n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),R.on(this._element,Tn.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&b(this._backdrop),this._backdrop.classList.add(Cn),!t)return;if(!n)return void t();var i=u(this._backdrop);R.one(this._backdrop,a,t),p(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove(Cn);var o=function(){e._removeBackdrop(),t&&t()};if(this._element.classList.contains(Ln)){var r=u(this._backdrop);R.one(this._backdrop,a,o),p(this._backdrop,r)}else o()}else t&&t()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){m(U.find(Nn.FIXED_CONTENT)).forEach(function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];ut.setDataAttribute(e,"padding-right",n),e.style.paddingRight=parseFloat(i)+t._scrollbarWidth+"px"}),m(U.find(Nn.STICKY_CONTENT)).forEach(function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];ut.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"];ut.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add(Sn)},e._resetScrollbar=function(){m(U.find(Nn.FIXED_CONTENT)).forEach(function(t){var e=ut.getDataAttribute(t,"padding-right");void 0!==e&&(ut.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)}),m(U.find(""+Nn.STICKY_CONTENT)).forEach(function(t){var e=ut.getDataAttribute(t,"margin-right");void 0!==e&&(ut.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)});var t=ut.getDataAttribute(document.body,"padding-right");void 0!==t?(ut.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t):document.body.style.paddingRight=""},e._getScrollbarWidth=function(){var t=document.createElement("div");t.className=An,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=E.getData(this,yn),r=o({},wn,ut.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 E.getData(t,yn)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return wn}}]),t}();if(R.on(document,Tn.CLICK_DATA_API,Nn.DATA_TOGGLE,function(t){var e,n=this,i=f(this);i&&(e=U.findOne(i));var r=E.getData(e,yn)?"toggle":o({},ut.getDataAttributes(e),ut.getDataAttributes(this));"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),R.one(e,Tn.SHOW,function(t){t.defaultPrevented||R.one(e,Tn.HIDDEN,function(){_(n)&&n.focus()})});var s=E.getData(e,yn);s||(s=new kn(e,r)),s.show(this)}),void 0!==l){var Pn=l.fn.modal;l.fn.modal=kn._jQueryInterface,l.fn.modal.Constructor=kn,l.fn.modal.noConflict=function(){return l.fn.modal=Pn,kn._jQueryInterface}}var xn=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Hn=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,Mn=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,jn=function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===xn.indexOf(n)||Boolean(t.nodeValue.match(Hn)||t.nodeValue.match(Mn));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1},Rn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function Wn(t,e,n){if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),r=m(i.body.querySelectorAll("*")),s=function(t,n){var i=r[t],s=i.nodeName.toLowerCase();if(-1===o.indexOf(s))return i.parentNode.removeChild(i),"continue";var a=m(i.attributes),l=[].concat(e["*"]||[],e[s]||[]);a.forEach(function(t){jn(t,l)||i.removeAttribute(t.nodeName)})},a=0,l=r.length;a<l;a++)s(a);return i.body.innerHTML}var Fn="tooltip",Un=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Bn=["sanitize","whiteList","sanitizeFn"],Kn={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"},Vn={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Yn={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:Rn},Qn="show",Gn="out",qn={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"},Xn="fade",zn="show",Zn=".tooltip-inner",$n=".tooltip-arrow",Jn="hover",ti="focus",ei="click",ni="manual",ii=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(),E.setData(t,this.constructor.DATA_KEY,this)}var e=t.prototype;return e.enable=function(){this._isEnabled=!0},e.disable=function(){this._isEnabled=!1},e.toggleEnabled=function(){this._isEnabled=!this._isEnabled},e.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=E.getData(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E.setData(t.delegateTarget,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(zn))return void this._leave(null,this);this._enter(null,this)}},e.dispose=function(){clearTimeout(this._timeout),E.removeData(this.element,this.constructor.DATA_KEY),R.off(this.element,this.constructor.EVENT_KEY),R.off(U.closest(this.element,".modal"),"hide.bs.modal"),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},e.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=R.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?n.contains(this.element):this.element.ownerDocument.documentElement.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(Xn);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,l=this._getAttachment(s);this.addAttachmentClass(l);var f=this._getContainer();E.setData(o,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||f.appendChild(o),R.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new Ye(this.element,o,{placement:l,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:$n},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){return t._handlePopperPlacementChange(e)}}),o.classList.add(zn),"ontouchstart"in document.documentElement&&m(document.body.children).forEach(function(t){R.on(t,"mouseover",function(){})});var h=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,R.trigger(t.element,t.constructor.Event.SHOWN),e===Gn&&t._leave(null,t)};if(this.tip.classList.contains(Xn)){var d=u(this.tip);R.one(this.tip,a,h),p(this.tip,d)}else h()}},e.hide=function(t){var e=this,n=this.getTipElement(),i=function(){e._hoverState!==Qn&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),R.trigger(e.element,e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(!R.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){if(n.classList.remove(zn),"ontouchstart"in document.documentElement&&m(document.body.children).forEach(function(t){return R.off(t,"mouseover",v)}),this._activeTrigger[ei]=!1,this._activeTrigger[ti]=!1,this._activeTrigger[Jn]=!1,this.tip.classList.contains(Xn)){var o=u(n);R.one(n,a,i),p(n,o)}else i();this._hoverState=""}},e.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},e.isWithContent=function(){return Boolean(this.getTitle())},e.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+t)},e.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},e.setContent=function(){var t=this.getTipElement();this.setElementContent(U.findOne(Zn,t),this.getTitle()),t.classList.remove(Xn),t.classList.remove(zn)},e.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&(e.nodeType||e.jquery)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.innerText=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=Wn(e,this.config.whiteList,this.config.sanitizeFn)),t.innerHTML=e):t.innerText=e)},e.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},e._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},e._getContainer=function(){return!1===this.config.container?document.body:d(this.config.container)?this.config.container:U.findOne(this.config.container)},e._getAttachment=function(t){return Vn[t.toUpperCase()]},e._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(e){if("click"===e)R.on(t.element,t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(e!==ni){var n=e===Jn?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i=e===Jn?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;R.on(t.element,n,t.config.selector,function(e){return t._enter(e)}),R.on(t.element,i,t.config.selector,function(e){return t._leave(e)})}}),R.on(U.closest(this.element,".modal"),"hide.bs.modal",function(){t.element&&t.hide()}),this.config.selector?this.config=o({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},e._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",""))},e._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||E.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?ti:Jn]=!0),e.getTipElement().classList.contains(zn)||e._hoverState===Qn?e._hoverState=Qn:(clearTimeout(e._timeout),e._hoverState=Qn,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===Qn&&e.show()},e.config.delay.show):e.show())},e._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||E.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?ti:Jn]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=Gn,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===Gn&&e.hide()},e.config.delay.hide):e.hide())},e._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},e._getConfig=function(t){var e=ut.getDataAttributes(this.element);return Object.keys(e).forEach(function(t){-1!==Bn.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()),g(Fn,t,this.constructor.DefaultType),t.sanitize&&(t.template=Wn(t.template,t.whiteList,t.sanitizeFn)),t},e._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},e._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(Un);null!==e&&e.length&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},e._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},e._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(t.classList.remove(Xn),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,"bs.tooltip"),i="object"==typeof e&&e;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,i)),"string"==typeof e)){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return E.getData(t,"bs.tooltip")},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Yn}},{key:"NAME",get:function(){return Fn}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return qn}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Kn}}]),t}();if(void 0!==l){var oi=l.fn.tooltip;l.fn.tooltip=ii._jQueryInterface,l.fn.tooltip.Constructor=ii,l.fn.tooltip.noConflict=function(){return l.fn.tooltip=oi,ii._jQueryInterface}}var ri="popover",si=new RegExp("(^|\\s)bs-popover\\S+","g"),ai=o({},ii.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>'}),li=o({},ii.DefaultType,{content:"(string|element|function)"}),ci="fade",fi="show",ui=".popover-header",hi=".popover-body",di={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"},pi=function(t){var e,i;function o(){return t.apply(this,arguments)||this}i=t,(e=o).prototype=Object.create(i.prototype),e.prototype.constructor=e,e.__proto__=i;var r=o.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},r.setContent=function(){var t=this.getTipElement();this.setElementContent(U.findOne(ui,t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(U.findOne(hi,t),e),t.classList.remove(ci),t.classList.remove(fi)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(si);null!==e&&e.length>0&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},o._jQueryInterface=function(t){return this.each(function(){var e=E.getData(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),E.setData(this,"bs.popover",e)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})},o._getInstance=function(t){return E.getData(t,"bs.popover")},n(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return ai}},{key:"NAME",get:function(){return ri}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return di}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return li}}]),o}(ii);if(void 0!==l){var gi=l.fn.popover;l.fn.popover=pi._jQueryInterface,l.fn.popover.Constructor=pi,l.fn.popover.noConflict=function(){return l.fn.popover=gi,pi._jQueryInterface}}var mi="scrollspy",_i="bs.scrollspy",vi="."+_i,bi={offset:10,method:"auto",target:""},yi={offset:"number",method:"string",target:"(string|element)"},Ei={ACTIVATE:"activate"+vi,SCROLL:"scroll"+vi,LOAD_DATA_API:"load"+vi+".data-api"},wi="dropdown-item",Di="active",Ti={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},Ii="offset",Ai="position",Oi=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+" "+Ti.NAV_LINKS+","+this._config.target+" "+Ti.LIST_ITEMS+","+this._config.target+" "+Ti.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,R.on(this._scrollElement,Ei.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process(),E.setData(t,_i,this)}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?Ii:Ai,n="auto"===this._config.method?e:this._config.method,i=n===Ai?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),m(U.find(this._selector)).map(function(t){var e,o=f(t);if(o&&(e=U.findOne(o)),e){var r=e.getBoundingClientRect();if(r.width||r.height)return[ut[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(){E.removeData(this._element,_i),R.off(this._scrollElement,vi),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=o({},bi,"object"==typeof t&&t?t:{})).target){var e=t.target.id;e||(e=c(mi),t.target.id=e),t.target="#"+e}return g(mi,t,yi),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=U.findOne(e.join(","));n.classList.contains(wi)?(U.findOne(Ti.DROPDOWN_TOGGLE,U.closest(n,Ti.DROPDOWN)).classList.add(Di),n.classList.add(Di)):(n.classList.add(Di),U.parents(n,Ti.NAV_LIST_GROUP).forEach(function(t){U.prev(t,Ti.NAV_LINKS+", "+Ti.LIST_ITEMS).forEach(function(t){return t.classList.add(Di)}),U.prev(t,Ti.NAV_ITEMS).forEach(function(t){U.children(t,Ti.NAV_LINKS).forEach(function(t){return t.classList.add(Di)})})})),R.trigger(this._scrollElement,Ei.ACTIVATE,{relatedTarget:t})},e._clear=function(){m(U.find(this._selector)).filter(function(t){return t.classList.contains(Di)}).forEach(function(t){return t.classList.remove(Di)})},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,_i);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 E.getData(t,_i)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return bi}}]),t}();if(R.on(window,Ei.LOAD_DATA_API,function(){m(U.find(Ti.DATA_SPY)).forEach(function(t){return new Oi(t,ut.getDataAttributes(t))})}),void 0!==l){var Si=l.fn[mi];l.fn[mi]=Oi._jQueryInterface,l.fn[mi].Constructor=Oi,l.fn[mi].noConflict=function(){return l.fn[mi]=Si,Oi._jQueryInterface}}var Li="bs.tab",Ci="."+Li,Ni={HIDE:"hide"+Ci,HIDDEN:"hidden"+Ci,SHOW:"show"+Ci,SHOWN:"shown"+Ci,CLICK_DATA_API:"click"+Ci+".data-api"},ki="dropdown-menu",Pi="active",xi="disabled",Hi="fade",Mi="show",ji=".dropdown",Ri=".nav, .list-group",Wi=".active",Fi=":scope > li > .active",Ui='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Bi=".dropdown-toggle",Ki=":scope > .dropdown-menu .active",Vi=function(){function t(t){this._element=t,E.setData(this._element,Li,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(Pi)||this._element.classList.contains(xi))){var e,n,i=U.closest(this._element,Ri),o=f(this._element);if(i){var r="UL"===i.nodeName||"OL"===i.nodeName?Fi:Wi;n=(n=m(U.find(r,i)))[n.length-1]}var s=null;if(n&&(s=R.trigger(n,Ni.HIDE,{relatedTarget:this._element})),!(R.trigger(this._element,Ni.SHOW,{relatedTarget:n}).defaultPrevented||null!==s&&s.defaultPrevented)){o&&(e=U.findOne(o)),this._activate(this._element,i);var a=function(){R.trigger(n,Ni.HIDDEN,{relatedTarget:t._element}),R.trigger(t._element,Ni.SHOWN,{relatedTarget:n})};e?this._activate(e,e.parentNode,a):a()}}},e.dispose=function(){E.removeData(this._element,Li),this._element=null},e._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?U.children(e,Wi):U.find(Fi,e))[0],r=n&&o&&o.classList.contains(Hi),s=function(){return i._transitionComplete(t,o,n)};if(o&&r){var l=u(o);o.classList.remove(Mi),R.one(o,a,s),p(o,l)}else s()},e._transitionComplete=function(t,e,n){if(e){e.classList.remove(Pi);var i=U.findOne(Ki,e.parentNode);i&&i.classList.remove(Pi),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add(Pi),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),b(t),t.classList.contains(Hi)&&t.classList.add(Mi),t.parentNode&&t.parentNode.classList.contains(ki))&&(U.closest(t,ji)&&m(U.find(Bi)).forEach(function(t){return t.classList.add(Pi)}),t.setAttribute("aria-expanded",!0));n&&n()},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,Li)||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 E.getData(t,Li)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(R.on(document,Ni.CLICK_DATA_API,Ui,function(t){t.preventDefault(),(E.getData(this,Li)||new Vi(this)).show()}),void 0!==l){var Yi=l.fn.tab;l.fn.tab=Vi._jQueryInterface,l.fn.tab.Constructor=Vi,l.fn.tab.noConflict=function(){return l.fn.tab=Yi,Vi._jQueryInterface}}var Qi="bs.toast",Gi="."+Qi,qi={CLICK_DISMISS:"click.dismiss"+Gi,HIDE:"hide"+Gi,HIDDEN:"hidden"+Gi,SHOW:"show"+Gi,SHOWN:"shown"+Gi},Xi="fade",zi="hide",Zi="show",$i="showing",Ji={animation:"boolean",autohide:"boolean",delay:"number"},to={animation:!0,autohide:!0,delay:500},eo='[data-dismiss="toast"]',no=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),E.setData(t,Qi,this)}var e=t.prototype;return e.show=function(){var t=this;R.trigger(this._element,qi.SHOW),this._config.animation&&this._element.classList.add(Xi);var e=function(){t._element.classList.remove($i),t._element.classList.add(Zi),R.trigger(t._element,qi.SHOWN),t._config.autohide&&t.hide()};if(this._element.classList.remove(zi),this._element.classList.add($i),this._config.animation){var n=u(this._element);R.one(this._element,a,e),p(this._element,n)}else e()},e.hide=function(t){var e=this;this._element.classList.contains(Zi)&&(R.trigger(this._element,qi.HIDE),t?this._close():this._timeout=setTimeout(function(){e._close()},this._config.delay))},e.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(Zi)&&this._element.classList.remove(Zi),R.off(this._element,qi.CLICK_DISMISS),E.removeData(this._element,Qi),this._element=null,this._config=null},e._getConfig=function(t){return t=o({},to,ut.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),g("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;R.on(this._element,qi.CLICK_DISMISS,eo,function(){return t.hide(!0)})},e._close=function(){var t=this,e=function(){t._element.classList.add(zi),R.trigger(t._element,qi.HIDDEN)};if(this._element.classList.remove(Zi),this._config.animation){var n=u(this._element);R.one(this._element,a,e),p(this._element,n)}else e()},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,Qi);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 E.getData(t,Qi)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return Ji}},{key:"Default",get:function(){return to}}]),t}();if(void 0!==l){var io=l.fn.toast;l.fn.toast=no._jQueryInterface,l.fn.toast.Constructor=no,l.fn.toast.noConflict=function(){return l.fn.toast=io,no._jQueryInterface}}t.Alert=q,t.Button=at,t.Carousel=kt,t.Collapse=Gt,t.Dropdown=vn,t.Modal=kn,t.Popover=pi,t.ScrollSpy=Oi,t.Tab=Vi,t.Toast=no,t.Tooltip=ii,Object.defineProperty(t,"__esModule",{value:!0})});
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t=t||self).bootstrap=e()}(this,function(){"use strict";function t(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function e(e,n,i){return n&&t(e.prototype,n),i&&t(e,i),e}function n(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t){for(var e=1;e<arguments.length;e++){var i=null!=arguments[e]?arguments[e]:{},o=Object.keys(i);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(i).filter(function(t){return Object.getOwnPropertyDescriptor(i,t).enumerable}))),o.forEach(function(e){n(t,e,i[e])})}return t}var o,r,s="transitionend",a=window.jQuery,l=function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},c=function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},f=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},u=function(t){t.dispatchEvent(new Event(s))},h=function(t){return(t[0]||t).nodeType},d=function(t,e){var n=!1,i=e+5;t.addEventListener(s,function e(){n=!0,t.removeEventListener(s,e)}),setTimeout(function(){n||u(t)},i)},p=function(t,e,n){Object.keys(n).forEach(function(i){var o,r=n[i],s=e[i],a=s&&h(s)?"element":(o=s,{}.toString.call(o).match(/\s([a-z]+)/i)[1].toLowerCase());if(!new RegExp(r).test(a))throw new Error(t.toUpperCase()+': Option "'+i+'" provided type "'+a+'" but expected type "'+r+'".')})},g=function(t){return t?[].slice.call(t):[]},m=function(t){return!!t&&(!!(t.style&&t.parentNode&&t.parentNode.style)&&("none"!==t.style.display&&"none"!==t.parentNode.style.display&&"hidden"!==t.style.visibility))},_=function(){return function(){}},v=function(t){return t.offsetHeight},b=(o={},r=1,{set:function(t,e,n){void 0===t.key&&(t.key={key:e,id:r},r++),o[t.key.id]=n},get:function(t,e){if(!t||void 0===t.key)return null;var n=t.key;return n.key===e?o[n.id]:null},delete:function(t,e){if(void 0!==t.key){var n=t.key;n.key===e&&(delete o[n.id],delete t.key)}}}),E={setData:function(t,e,n){b.set(t,e,n)},getData:function(t,e){return b.get(t,e)},removeData:function(t,e){b.delete(t,e)}},y=function(){var t,e,n=(t=new CustomEvent("Bootstrap",{cancelable:!0}),(e=document.createElement("div")).addEventListener("Bootstrap",function(){return null}),t.preventDefault(),e.dispatchEvent(t),t.defaultPrevented),i=Element.prototype.querySelectorAll,o=Element.prototype.querySelector,r=/:scope\b/;return function(){var t=document.createElement("div");try{t.querySelectorAll(":scope *")}catch(t){return!1}return!0}()||(i=function(t){if(!r.test(t))return this.querySelectorAll(t);var e=Boolean(this.id);e||(this.id=l("scope"));var n=null;try{t=t.replace(r,"#"+this.id),n=this.querySelectorAll(t)}finally{e||this.removeAttribute("id")}return n},o=function(t){if(!r.test(t))return this.querySelector(t);var e=i.call(this,t);return void 0!==e[0]?e[0]:null}),{defaultPreventedPreservedOnDispatch:n,find:i,findOne:o}}(),w=/[^.]*(?=\..*)\.|.*/,D=/\..*/,T=/^key/,I=/::\d+$/,A={},O=1,L={mouseenter:"mouseover",mouseleave:"mouseout"},S=["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 C(t,e){return e&&e+"::"+O++||t.uidEvent||O++}function N(t){var e=C(t);return t.uidEvent=e,A[e]=A[e]||{},A[e]}function k(t,e){null===t.which&&T.test(t.type)&&(t.which=null===t.charCode?t.keyCode:t.charCode),t.delegateTarget=e}function P(t,e,n){void 0===n&&(n=null);for(var i=Object.keys(t),o=0;o<i.length;o++){var r=i[o],s=t[r];if(s.originalHandler===e&&s.delegationSelector===n)return t[r]}return null}function x(t,e,n){var i="string"==typeof e,o=i?n:e,r=t.replace(D,""),s=L[r];return s&&(r=s),S.indexOf(r)>-1||(r=t),[i,o,r]}function H(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var r=x(e,n,i),s=r[0],a=r[1],l=r[2],c=N(t),f=c[l]||(c[l]={}),u=P(f,a,s?n:null);if(u)u.oneOff=u.oneOff&&o;else{var h=C(a,e.replace(w,"")),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 k(o,s),i.oneOff&&j.off(t,o.type,n),n.apply(s,[o]);return null}}(t,n,i):function(t,e){return function n(i){return k(i,t),n.oneOff&&j.off(t,i.type,e),e.apply(t,[i])}}(t,n);d.delegationSelector=s?n:null,d.originalHandler=a,d.oneOff=o,d.uidEvent=h,f[h]=d,t.addEventListener(l,d,s)}}}function M(t,e,n,i,o){var r=P(e[n],i,o);null!==r&&(t.removeEventListener(n,r,Boolean(o)),delete e[n][r.uidEvent])}var j={on:function(t,e,n,i){H(t,e,n,i,!1)},one:function(t,e,n,i){H(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=x(e,n,i),r=o[0],s=o[1],a=o[2],l=a!==e,c=N(t),f="."===e.charAt(0);if(void 0===s){f&&Object.keys(c).forEach(function(n){!function(t,e,n,i){var o=e[n]||{};Object.keys(o).forEach(function(r){if(r.indexOf(i)>-1){var s=o[r];M(t,e,n,s.originalHandler,s.delegationSelector)}})}(t,c,n,e.substr(1))});var u=c[a]||{};Object.keys(u).forEach(function(n){var i=n.replace(I,"");if(!l||e.indexOf(i)>-1){var o=u[n];M(t,c,a,o.originalHandler,o.delegationSelector)}})}else{if(!c||!c[a])return;M(t,c,a,s,r?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=e.replace(D,""),r=e!==o,s=S.indexOf(o)>-1,l=!0,c=!0,f=!1,u=null;return r&&void 0!==a&&(i=a.Event(e,n),a(t).trigger(i),l=!i.isPropagationStopped(),c=!i.isImmediatePropagationStopped(),f=i.isDefaultPrevented()),s?(u=document.createEvent("HTMLEvents")).initEvent(o,l,!0):u=new CustomEvent(e,{bubbles:l,cancelable:!0}),void 0!==n&&Object.keys(n).forEach(function(t){Object.defineProperty(u,t,{get:function(){return n[t]}})}),f&&(u.preventDefault(),y.defaultPreventedPreservedOnDispatch||Object.defineProperty(u,"defaultPrevented",{get:function(){return!0}})),c&&t.dispatchEvent(u),u.defaultPrevented&&void 0!==i&&i.preventDefault(),u}},R=y.find,W=y.findOne,F={matches:function(t,e){return t.matches(e)},find:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:R.call(e,t)},findOne:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:W.call(e,t)},children:function(t,e){var n=this;if("string"!=typeof e)return null;var i=g(t.children);return i.filter(function(t){return n.matches(t,e)})},parents:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.parentNode;return n},closest:function(t,e){return"string"!=typeof e?null:t.closest(e)},prev:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.previousSibling;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.previousSibling;return n}},U="bs.alert",B="."+U,K={CLOSE:"close"+B,CLOSED:"closed"+B,CLICK_DATA_API:"click"+B+".data-api"},V="alert",Y="fade",Q="show",G=function(){function t(t){this._element=t,this._element&&E.setData(t,U,this)}var n=t.prototype;return n.close=function(t){var e=this._element;t&&(e=this._getRootElement(t));var n=this._triggerCloseEvent(e);null===n||n.defaultPrevented||this._removeElement(e)},n.dispose=function(){E.removeData(this._element,U),this._element=null},n._getRootElement=function(t){var e=c(t),n=!1;return e&&(n=F.findOne(e)),n||(n=F.closest(t,"."+V)),n},n._triggerCloseEvent=function(t){return j.trigger(t,K.CLOSE)},n._removeElement=function(t){var e=this;if(t.classList.remove(Q),t.classList.contains(Y)){var n=f(t);j.one(t,s,function(n){return e._destroyElement(t,n)}),d(t,n)}else this._destroyElement(t)},n._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),j.trigger(t,K.CLOSED)},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,U);n||(n=new t(this)),"close"===e&&n[e](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},t._getInstance=function(t){return E.getData(t,U)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(j.on(document,K.CLICK_DATA_API,'[data-dismiss="alert"]',G._handleDismiss(new G)),void 0!==a){var q=a.fn.alert;a.fn.alert=G._jQueryInterface,a.fn.alert.Constructor=G,a.fn.alert.noConflict=function(){return a.fn.alert=q,G._jQueryInterface}}var X="bs.button",z="."+X,Z="active",$="btn",J="focus",tt='[data-toggle^="button"]',et='[data-toggle="buttons"]',nt='input:not([type="hidden"])',it=".active",ot=".btn",rt={CLICK_DATA_API:"click"+z+".data-api",FOCUS_DATA_API:"focus"+z+".data-api",BLUR_DATA_API:"blur"+z+".data-api"},st=function(){function t(t){this._element=t,E.setData(t,X,this)}var n=t.prototype;return n.toggle=function(){var t=!0,e=!0,n=F.closest(this._element,et);if(n){var i=F.findOne(nt,this._element);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(Z))t=!1;else{var o=F.findOne(it,n);o&&o.classList.remove(Z)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(Z),j.trigger(i,"change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(Z)),t&&this._element.classList.toggle(Z)},n.dispose=function(){E.removeData(this._element,X),this._element=null},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,X);n||(n=new t(this)),"toggle"===e&&n[e]()})},t._getInstance=function(t){return E.getData(t,X)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(j.on(document,rt.CLICK_DATA_API,tt,function(t){t.preventDefault();var e=t.target;e.classList.contains($)||(e=F.closest(e,ot));var n=E.getData(e,X);n||(n=new st(e),E.setData(e,X,n)),n.toggle()}),j.on(document,rt.FOCUS_DATA_API,tt,function(t){F.closest(t.target,ot).classList.add(J)}),j.on(document,rt.BLUR_DATA_API,tt,function(t){F.closest(t.target,ot).classList.remove(J)}),void 0!==a){var at=a.fn.button;a.fn.button=st._jQueryInterface,a.fn.button.Constructor=st,a.fn.button.noConflict=function(){return a.fn.button=at,st._jQueryInterface}}function lt(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function ct(t){return t.replace(/[A-Z]/g,function(t){return t.toLowerCase()})}var ft={setDataAttribute:function(t,e,n){t.setAttribute("data-"+ct(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+ct(e))},getDataAttributes:function(t){if(!t)return{};var e=i({},t.dataset);return Object.keys(e).forEach(function(t){e[t]=lt(e[t])}),e},getDataAttribute:function(t,e){return lt(t.getAttribute("data-"+ct(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))}},ut="carousel",ht="bs.carousel",dt="."+ht,pt={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},gt={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},mt="next",_t="prev",vt="left",bt="right",Et={SLIDE:"slide"+dt,SLID:"slid"+dt,KEYDOWN:"keydown"+dt,MOUSEENTER:"mouseenter"+dt,MOUSELEAVE:"mouseleave"+dt,TOUCHSTART:"touchstart"+dt,TOUCHMOVE:"touchmove"+dt,TOUCHEND:"touchend"+dt,POINTERDOWN:"pointerdown"+dt,POINTERUP:"pointerup"+dt,DRAG_START:"dragstart"+dt,LOAD_DATA_API:"load"+dt+".data-api",CLICK_DATA_API:"click"+dt+".data-api"},yt="carousel",wt="active",Dt="slide",Tt="carousel-item-right",It="carousel-item-left",At="carousel-item-next",Ot="carousel-item-prev",Lt="pointer-event",St={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",ITEM_IMG:".carousel-item img",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},Ct={TOUCH:"touch",PEN:"pen"},Nt=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=F.findOne(St.INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),E.setData(t,ht,this)}var n=t.prototype;return n.next=function(){this._isSliding||this._slide(mt)},n.nextWhenVisible=function(){!document.hidden&&m(this._element)&&this.next()},n.prev=function(){this._isSliding||this._slide(_t)},n.pause=function(t){t||(this._isPaused=!0),F.findOne(St.NEXT_PREV,this._element)&&(u(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=F.findOne(St.ACTIVE_ITEM,this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)j.one(this._element,Et.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=t>n?mt:_t;this._slide(i,this._items[t])}},n.dispose=function(){j.off(this._element,dt),E.removeData(this._element,ht),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},n._getConfig=function(t){return t=i({},pt,t),p(ut,t,gt),t},n._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;e>0&&this.prev(),e<0&&this.next()}},n._addEventListeners=function(){var t=this;this._config.keyboard&&j.on(this._element,Et.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(j.on(this._element,Et.MOUSEENTER,function(e){return t.pause(e)}),j.on(this._element,Et.MOUSELEAVE,function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},n._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&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))};g(F.find(St.ITEM_IMG,this._element)).forEach(function(t){j.on(t,Et.DRAG_START,function(t){return t.preventDefault()})}),this._pointerEvent?(j.on(this._element,Et.POINTERDOWN,function(t){return e(t)}),j.on(this._element,Et.POINTERUP,function(t){return n(t)}),this._element.classList.add(Lt)):(j.on(this._element,Et.TOUCHSTART,function(t){return e(t)}),j.on(this._element,Et.TOUCHMOVE,function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)}),j.on(this._element,Et.TOUCHEND,function(t){return n(t)}))}},n._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},n._getItemIndex=function(t){return this._items=t&&t.parentNode?g(F.find(St.ITEM,t.parentNode)):[],this._items.indexOf(t)},n._getItemByDirection=function(t,e){var n=t===mt,i=t===_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+(t===_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(F.findOne(St.ACTIVE_ITEM,this._element));return j.trigger(this._element,Et.SLIDE,{relatedTarget:t,direction:e,from:i,to:n})},n._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=F.find(St.ACTIVE,this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove(wt);var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add(wt)}},n._slide=function(t,e){var n,i,o,r=this,a=F.findOne(St.ACTIVE_ITEM,this._element),l=this._getItemIndex(a),c=e||a&&this._getItemByDirection(t,a),u=this._getItemIndex(c),h=Boolean(this._interval);if(t===mt?(n=It,i=At,o=vt):(n=Tt,i=Ot,o=bt),c&&c.classList.contains(wt))this._isSliding=!1;else if(!this._triggerSlideEvent(c,o).defaultPrevented&&a&&c){if(this._isSliding=!0,h&&this.pause(),this._setActiveIndicatorElement(c),this._element.classList.contains(Dt)){c.classList.add(i),v(c),a.classList.add(n),c.classList.add(n);var p=parseInt(c.getAttribute("data-interval"),10);p?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=p):this._config.interval=this._config.defaultInterval||this._config.interval;var g=f(a);j.one(a,s,function(){c.classList.remove(n),c.classList.remove(i),c.classList.add(wt),a.classList.remove(wt),a.classList.remove(i),a.classList.remove(n),r._isSliding=!1,setTimeout(function(){j.trigger(r._element,Et.SLID,{relatedTarget:c,direction:o,from:l,to:u})},0)}),d(a,g)}else a.classList.remove(wt),c.classList.add(wt),this._isSliding=!1,j.trigger(this._element,Et.SLID,{relatedTarget:c,direction:o,from:l,to:u});h&&this.cycle()}},t._carouselInterface=function(e,n){var o=E.getData(e,ht),r=i({},pt,ft.getDataAttributes(e));"object"==typeof n&&(r=i({},r,n));var s="string"==typeof n?n:r.slide;if(o||(o=new t(e,r)),"number"==typeof n)o.to(n);else if("string"==typeof s){if(void 0===o[s])throw new TypeError('No method named "'+s+'"');o[s]()}else r.interval&&r.ride&&(o.pause(),o.cycle())},t._jQueryInterface=function(e){return this.each(function(){t._carouselInterface(this,e)})},t._dataApiClickHandler=function(e){var n=c(this);if(n){var o=F.findOne(n);if(o&&o.classList.contains(yt)){var r=i({},ft.getDataAttributes(o),ft.getDataAttributes(this)),s=this.getAttribute("data-slide-to");s&&(r.interval=!1),t._carouselInterface(o,r),s&&E.getData(o,ht).to(s),e.preventDefault()}}},t._getInstance=function(t){return E.getData(t,ht)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return pt}}]),t}();if(j.on(document,Et.CLICK_DATA_API,St.DATA_SLIDE,Nt._dataApiClickHandler),j.on(window,Et.LOAD_DATA_API,function(){for(var t=g(F.find(St.DATA_RIDE)),e=0,n=t.length;e<n;e++)Nt._carouselInterface(t[e],E.getData(t[e],ht))}),void 0!==a){var kt=a.fn[ut];a.fn[ut]=Nt._jQueryInterface,a.fn[ut].Constructor=Nt,a.fn[ut].noConflict=function(){return a.fn[ut]=kt,Nt._jQueryInterface}}var Pt="collapse",xt="bs.collapse",Ht="."+xt,Mt={toggle:!0,parent:""},jt={toggle:"boolean",parent:"(string|element)"},Rt={SHOW:"show"+Ht,SHOWN:"shown"+Ht,HIDE:"hide"+Ht,HIDDEN:"hidden"+Ht,CLICK_DATA_API:"click"+Ht+".data-api"},Wt="show",Ft="collapse",Ut="collapsing",Bt="collapsed",Kt="width",Vt="height",Yt={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},Qt=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=g(F.find('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=g(F.find(Yt.DATA_TOGGLE)),i=0,o=n.length;i<o;i++){var r=n[i],s=c(r),a=g(F.find(s)).filter(function(e){return e===t});null!==s&&a.length&&(this._selector=s,this._triggerArray.push(r))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle(),E.setData(t,xt,this)}var n=t.prototype;return n.toggle=function(){this._element.classList.contains(Wt)?this.hide():this.show()},n.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains(Wt)){var n,i;this._parent&&0===(n=g(F.find(Yt.ACTIVES,this._parent)).filter(function(t){return"string"==typeof e._config.parent?t.getAttribute("data-parent")===e._config.parent:t.classList.contains(Ft)})).length&&(n=null);var o=F.findOne(this._selector);if(n){var r=n.filter(function(t){return o!==t});if((i=r[0]?E.getData(r[0],xt):null)&&i._isTransitioning)return}if(!j.trigger(this._element,Rt.SHOW).defaultPrevented){n&&n.forEach(function(e){o!==e&&t._collapseInterface(e,"hide"),i||E.setData(e,xt,null)});var a=this._getDimension();this._element.classList.remove(Ft),this._element.classList.add(Ut),this._element.style[a]=0,this._triggerArray.length&&this._triggerArray.forEach(function(t){t.classList.remove(Bt),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);var l="scroll"+(a[0].toUpperCase()+a.slice(1)),c=f(this._element);j.one(this._element,s,function(){e._element.classList.remove(Ut),e._element.classList.add(Ft),e._element.classList.add(Wt),e._element.style[a]="",e.setTransitioning(!1),j.trigger(e._element,Rt.SHOWN)}),d(this._element,c),this._element.style[a]=this._element[l]+"px"}}},n.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains(Wt)&&!j.trigger(this._element,Rt.HIDE).defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",v(this._element),this._element.classList.add(Ut),this._element.classList.remove(Ft),this._element.classList.remove(Wt);var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],r=c(o);if(null!==r)F.findOne(r).classList.contains(Wt)||(o.classList.add(Bt),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var a=f(this._element);j.one(this._element,s,function(){t.setTransitioning(!1),t._element.classList.remove(Ut),t._element.classList.add(Ft),j.trigger(t._element,Rt.HIDDEN)}),d(this._element,a)}},n.setTransitioning=function(t){this._isTransitioning=t},n.dispose=function(){E.removeData(this._element,xt),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},n._getConfig=function(t){return(t=i({},Mt,t)).toggle=Boolean(t.toggle),p(Pt,t,jt),t},n._getDimension=function(){return this._element.classList.contains(Kt)?Kt:Vt},n._getParent=function(){var e=this,n=this._config.parent;h(n)?void 0===n.jquery&&void 0===n[0]||(n=n[0]):n=F.findOne(n);var i='[data-toggle="collapse"][data-parent="'+n+'"]';return g(F.find(i,n)).forEach(function(n){e._addAriaAndCollapsedClass(t._getTargetFromElement(n),[n])}),n},n._addAriaAndCollapsedClass=function(t,e){if(t){var n=t.classList.contains(Wt);e.length&&e.forEach(function(t){n?t.classList.remove(Bt):t.classList.add(Bt),t.setAttribute("aria-expanded",n)})}},t._getTargetFromElement=function(t){var e=c(t);return e?F.findOne(e):null},t._collapseInterface=function(e,n){var o=E.getData(e,xt),r=i({},Mt,ft.getDataAttributes(e),"object"==typeof n&&n?n:{});if(!o&&r.toggle&&/show|hide/.test(n)&&(r.toggle=!1),o||(o=new t(e,r)),"string"==typeof n){if(void 0===o[n])throw new TypeError('No method named "'+n+'"');o[n]()}},t._jQueryInterface=function(e){return this.each(function(){t._collapseInterface(this,e)})},t._getInstance=function(t){return E.getData(t,xt)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Mt}}]),t}();if(j.on(document,Rt.CLICK_DATA_API,Yt.DATA_TOGGLE,function(t){"A"===t.target.tagName&&t.preventDefault();var e=ft.getDataAttributes(this),n=c(this);g(F.find(n)).forEach(function(t){var n,i=E.getData(t,xt);i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,Qt._collapseInterface(t,n)})}),void 0!==a){var Gt=a.fn[Pt];a.fn[Pt]=Qt._jQueryInterface,a.fn[Pt].Constructor=Qt,a.fn[Pt].noConflict=function(){return a.fn[Pt]=Gt,Qt._jQueryInterface}}for(var qt="undefined"!=typeof window&&"undefined"!=typeof document,Xt=["Edge","Trident","Firefox"],zt=0,Zt=0;Zt<Xt.length;Zt+=1)if(qt&&navigator.userAgent.indexOf(Xt[Zt])>=0){zt=1;break}var $t=qt&&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()},zt))}};function Jt(t){return t&&"[object Function]"==={}.toString.call(t)}function te(t,e){if(1!==t.nodeType)return[];var n=t.ownerDocument.defaultView.getComputedStyle(t,null);return e?n[e]:n}function ee(t){return"HTML"===t.nodeName?t:t.parentNode||t.host}function ne(t){if(!t)return document.body;switch(t.nodeName){case"HTML":case"BODY":return t.ownerDocument.body;case"#document":return t.body}var e=te(t),n=e.overflow,i=e.overflowX,o=e.overflowY;return/(auto|scroll|overlay)/.test(n+o+i)?t:ne(ee(t))}var ie=qt&&!(!window.MSInputMethodContext||!document.documentMode),oe=qt&&/MSIE 10/.test(navigator.userAgent);function re(t){return 11===t?ie:10===t?oe:ie||oe}function se(t){if(!t)return document.documentElement;for(var e=re(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"===te(n,"position")?se(n):n:t?t.ownerDocument.documentElement:document.documentElement}function ae(t){return null!==t.parentNode?ae(t.parentNode):t}function le(t,e){if(!(t&&t.nodeType&&e&&e.nodeType))return document.documentElement;var n=t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING,i=n?t:e,o=n?e:t,r=document.createRange();r.setStart(i,0),r.setEnd(o,0);var s,a,l=r.commonAncestorContainer;if(t!==l&&e!==l||i.contains(o))return"BODY"===(a=(s=l).nodeName)||"HTML"!==a&&se(s.firstElementChild)!==s?se(l):l;var c=ae(t);return c.host?le(c.host,e):le(t,ae(e).host)}function ce(t){var e="top"===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:"top")?"scrollTop":"scrollLeft",n=t.nodeName;if("BODY"===n||"HTML"===n){var i=t.ownerDocument.documentElement;return(t.ownerDocument.scrollingElement||i)[e]}return t[e]}function fe(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 ue(t,e,n,i){return Math.max(e["offset"+t],e["scroll"+t],n["client"+t],n["offset"+t],n["scroll"+t],re(10)?parseInt(n["offset"+t])+parseInt(i["margin"+("Height"===t?"Top":"Left")])+parseInt(i["margin"+("Height"===t?"Bottom":"Right")]):0)}function he(t){var e=t.body,n=t.documentElement,i=re(10)&&getComputedStyle(n);return{height:ue("Height",e,n,i),width:ue("Width",e,n,i)}}var de=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},pe=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}}(),ge=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t},me=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 _e(t){return me({},t,{right:t.left+t.width,bottom:t.top+t.height})}function ve(t){var e={};try{if(re(10)){e=t.getBoundingClientRect();var n=ce(t,"top"),i=ce(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?he(t.ownerDocument):{},s=r.width||t.clientWidth||o.right-o.left,a=r.height||t.clientHeight||o.bottom-o.top,l=t.offsetWidth-s,c=t.offsetHeight-a;if(l||c){var f=te(t);l-=fe(f,"x"),c-=fe(f,"y"),o.width-=l,o.height-=c}return _e(o)}function be(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=re(10),o="HTML"===e.nodeName,r=ve(t),s=ve(e),a=ne(t),l=te(e),c=parseFloat(l.borderTopWidth,10),f=parseFloat(l.borderLeftWidth,10);n&&o&&(s.top=Math.max(s.top,0),s.left=Math.max(s.left,0));var u=_e({top:r.top-s.top-c,left:r.left-s.left-f,width:r.width,height:r.height});if(u.marginTop=0,u.marginLeft=0,!i&&o){var h=parseFloat(l.marginTop,10),d=parseFloat(l.marginLeft,10);u.top-=c-h,u.bottom-=c-h,u.left-=f-d,u.right-=f-d,u.marginTop=h,u.marginLeft=d}return(i&&!n?e.contains(a):e===a&&"BODY"!==a.nodeName)&&(u=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=ce(e,"top"),o=ce(e,"left"),r=n?-1:1;return t.top+=i*r,t.bottom+=i*r,t.left+=o*r,t.right+=o*r,t}(u,e)),u}function Ee(t){if(!t||!t.parentElement||re())return document.documentElement;for(var e=t.parentElement;e&&"none"===te(e,"transform");)e=e.parentElement;return e||document.documentElement}function ye(t,e,n,i){var o=arguments.length>4&&void 0!==arguments[4]&&arguments[4],r={top:0,left:0},s=o?Ee(t):le(t,e);if("viewport"===i)r=function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.ownerDocument.documentElement,i=be(t,n),o=Math.max(n.clientWidth,window.innerWidth||0),r=Math.max(n.clientHeight,window.innerHeight||0),s=e?0:ce(n),a=e?0:ce(n,"left");return _e({top:s-i.top+i.marginTop,left:a-i.left+i.marginLeft,width:o,height:r})}(s,o);else{var a=void 0;"scrollParent"===i?"BODY"===(a=ne(ee(e))).nodeName&&(a=t.ownerDocument.documentElement):a="window"===i?t.ownerDocument.documentElement:i;var l=be(a,s,o);if("HTML"!==a.nodeName||function t(e){var n=e.nodeName;if("BODY"===n||"HTML"===n)return!1;if("fixed"===te(e,"position"))return!0;var i=ee(e);return!!i&&t(i)}(s))r=l;else{var c=he(t.ownerDocument),f=c.height,u=c.width;r.top+=l.top-l.marginTop,r.bottom=f+l.top,r.left+=l.left-l.marginLeft,r.right=u+l.left}}var h="number"==typeof(n=n||0);return r.left+=h?n:n.left||0,r.top+=h?n:n.top||0,r.right-=h?n:n.right||0,r.bottom-=h?n:n.bottom||0,r}function we(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=ye(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 me({key:t},a[t],{area:(e=a[t],e.width*e.height)});var e}).sort(function(t,e){return e.area-t.area}),c=l.filter(function(t){var e=t.width,i=t.height;return e>=n.clientWidth&&i>=n.clientHeight}),f=c.length>0?c[0].key:l[0].key,u=t.split("-")[1];return f+(u?"-"+u:"")}function De(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return be(n,i?Ee(e):le(e,n),i)}function Te(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 Ie(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 Ae(t,e,n){n=n.split("-")[0];var i=Te(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[Ie(a)],o}function Oe(t,e){return Array.prototype.find?t.find(e):t.filter(e)[0]}function Le(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=Oe(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&&Jt(n)&&(e.offsets.popper=_e(e.offsets.popper),e.offsets.reference=_e(e.offsets.reference),e=n(e,t))}),e}function Se(t,e){return t.some(function(t){var n=t.name;return t.enabled&&n===e})}function Ce(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 Ne(t){var e=t.ownerDocument;return e?e.defaultView:window}function ke(t,e,n,i){n.updateBound=i,Ne(t).addEventListener("resize",n.updateBound,{passive:!0});var o=ne(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(ne(s.parentNode),n,i,o),o.push(s)}(o,"scroll",n.updateBound,n.scrollParents),n.scrollElement=o,n.eventsEnabled=!0,n}function Pe(){var t,e;this.state.eventsEnabled&&(cancelAnimationFrame(this.scheduleUpdate),this.state=(t=this.reference,e=this.state,Ne(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 xe(t){return""!==t&&!isNaN(parseFloat(t))&&isFinite(t)}function He(t,e){Object.keys(e).forEach(function(n){var i="";-1!==["width","height","top","right","bottom","left"].indexOf(n)&&xe(e[n])&&(i="px"),t.style[n]=e[n]+i})}var Me=qt&&/Firefox/i.test(navigator.userAgent);function je(t,e,n){var i=Oe(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 Re=["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"],We=Re.slice(3);function Fe(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=We.indexOf(t),i=We.slice(n+1).concat(We.slice(0,n));return e?i.reverse():i}var Ue={FLIP:"flip",CLOCKWISE:"clockwise",COUNTERCLOCKWISE:"counterclockwise"};function Be(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(Oe(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 _e(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){xe(n)&&(o[e]+=n*("-"===t[i-1]?-1:1))})}),o}var Ke={placement:"bottom",positionFixed:!1,eventsEnabled:!0,removeOnDestroy:!1,onCreate:function(){},onUpdate:function(){},modifiers:{shift:{order:100,enabled:!0,fn:function(t){var e=t.placement,n=e.split("-")[0],i=e.split("-")[1];if(i){var o=t.offsets,r=o.reference,s=o.popper,a=-1!==["bottom","top"].indexOf(n),l=a?"left":"top",c=a?"width":"height",f={start:ge({},l,r[l]),end:ge({},l,r[l]+r[c]-s[c])};t.offsets.popper=me({},s,f[i])}return t}},offset:{order:200,enabled:!0,fn:function(t,e){var n=e.offset,i=t.placement,o=t.offsets,r=o.popper,s=o.reference,a=i.split("-")[0],l=void 0;return l=xe(+n)?[+n,0]:Be(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||se(t.instance.popper);t.instance.reference===n&&(n=se(n));var i=Ce("transform"),o=t.instance.popper.style,r=o.top,s=o.left,a=o[i];o.top="",o.left="",o[i]="";var l=ye(t.instance.popper,t.instance.reference,e.padding,n,t.positionFixed);o.top=r,o.left=s,o[i]=a,e.boundaries=l;var c=e.priority,f=t.offsets.popper,u={primary:function(t){var n=f[t];return f[t]<l[t]&&!e.escapeWithReference&&(n=Math.max(f[t],l[t])),ge({},t,n)},secondary:function(t){var n="right"===t?"left":"top",i=f[n];return f[t]>l[t]&&!e.escapeWithReference&&(i=Math.min(f[n],l[t]-("right"===t?f.width:f.height))),ge({},n,i)}};return c.forEach(function(t){var e=-1!==["left","top"].indexOf(t)?"primary":"secondary";f=me({},f,u[e](t))}),t.offsets.popper=f,t},priority:["left","right","top","bottom"],padding:5,boundariesElement:"scrollParent"},keepTogether:{order:400,enabled:!0,fn:function(t){var e=t.offsets,n=e.popper,i=e.reference,o=t.placement.split("-")[0],r=Math.floor,s=-1!==["top","bottom"].indexOf(o),a=s?"right":"bottom",l=s?"left":"top",c=s?"width":"height";return n[a]<r(i[l])&&(t.offsets.popper[l]=r(i[l])-n[c]),n[l]>r(i[a])&&(t.offsets.popper[l]=r(i[a])),t}},arrow:{order:500,enabled:!0,fn:function(t,e){var n;if(!je(t.instance.modifiers,"arrow","keepTogether"))return t;var i=e.element;if("string"==typeof i){if(!(i=t.instance.popper.querySelector(i)))return t}else if(!t.instance.popper.contains(i))return console.warn("WARNING: `arrow.element` must be child of its popper element!"),t;var o=t.placement.split("-")[0],r=t.offsets,s=r.popper,a=r.reference,l=-1!==["left","right"].indexOf(o),c=l?"height":"width",f=l?"Top":"Left",u=f.toLowerCase(),h=l?"left":"top",d=l?"bottom":"right",p=Te(i)[c];a[d]-p<s[u]&&(t.offsets.popper[u]-=s[u]-(a[d]-p)),a[u]+p>s[d]&&(t.offsets.popper[u]+=a[u]+p-s[d]),t.offsets.popper=_e(t.offsets.popper);var g=a[u]+a[c]/2-p/2,m=te(t.instance.popper),_=parseFloat(m["margin"+f],10),v=parseFloat(m["border"+f+"Width"],10),b=g-t.offsets.popper[u]-_-v;return b=Math.max(Math.min(s[c]-p,b),0),t.arrowElement=i,t.offsets.arrow=(ge(n={},u,Math.round(b)),ge(n,h,""),n),t},element:"[x-arrow]"},flip:{order:600,enabled:!0,fn:function(t,e){if(Se(t.instance.modifiers,"inner"))return t;if(t.flipped&&t.placement===t.originalPlacement)return t;var n=ye(t.instance.popper,t.instance.reference,e.padding,e.boundariesElement,t.positionFixed),i=t.placement.split("-")[0],o=Ie(i),r=t.placement.split("-")[1]||"",s=[];switch(e.behavior){case Ue.FLIP:s=[i,o];break;case Ue.CLOCKWISE:s=Fe(i);break;case Ue.COUNTERCLOCKWISE:s=Fe(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=Ie(i);var c=t.offsets.popper,f=t.offsets.reference,u=Math.floor,h="left"===i&&u(c.right)>u(f.left)||"right"===i&&u(c.left)<u(f.right)||"top"===i&&u(c.bottom)>u(f.top)||"bottom"===i&&u(c.top)<u(f.bottom),d=u(c.left)<u(n.left),p=u(c.right)>u(n.right),g=u(c.top)<u(n.top),m=u(c.bottom)>u(n.bottom),_="left"===i&&d||"right"===i&&p||"top"===i&&g||"bottom"===i&&m,v=-1!==["top","bottom"].indexOf(i),b=!!e.flipVariations&&(v&&"start"===r&&d||v&&"end"===r&&p||!v&&"start"===r&&g||!v&&"end"===r&&m);(h||_||b)&&(t.flipped=!0,(h||_)&&(i=s[l+1]),b&&(r=function(t){return"end"===t?"start":"start"===t?"end":t}(r)),t.placement=i+(r?"-"+r:""),t.offsets.popper=me({},t.offsets.popper,Ae(t.instance.popper,t.offsets.reference,t.placement)),t=Le(t.instance.modifiers,t,"flip"))}),t},behavior:"flip",padding:5,boundariesElement:"viewport"},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=Ie(e),t.offsets.popper=_e(o),t}},hide:{order:800,enabled:!0,fn:function(t){if(!je(t.instance.modifiers,"hide","preventOverflow"))return t;var e=t.offsets.reference,n=Oe(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=Oe(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=se(t.instance.popper),l=ve(a),c={position:o.position},f=function(t,e){var n=t.offsets,i=n.popper,o=n.reference,r=Math.round,s=Math.floor,a=function(t){return t},l=r(o.width),c=r(i.width),f=-1!==["left","right"].indexOf(t.placement),u=-1!==t.placement.indexOf("-"),h=e?f||u||l%2==c%2?r:s:a,d=e?r:a;return{left:h(l%2==1&&c%2==1&&!u&&e?i.left-1:i.left),top:d(i.top),bottom:d(i.bottom),right:h(i.right)}}(t,window.devicePixelRatio<2||!Me),u="bottom"===n?"top":"bottom",h="right"===i?"left":"right",d=Ce("transform"),p=void 0,g=void 0;if(g="bottom"===u?"HTML"===a.nodeName?-a.clientHeight+f.bottom:-l.height+f.bottom:f.top,p="right"===h?"HTML"===a.nodeName?-a.clientWidth+f.right:-l.width+f.right:f.left,s&&d)c[d]="translate3d("+p+"px, "+g+"px, 0)",c[u]=0,c[h]=0,c.willChange="transform";else{var m="bottom"===u?-1:1,_="right"===h?-1:1;c[u]=g*m,c[h]=p*_,c.willChange=u+", "+h}var v={"x-placement":t.placement};return t.attributes=me({},v,t.attributes),t.styles=me({},c,t.styles),t.arrowStyles=me({},t.offsets.arrow,t.arrowStyles),t},gpuAcceleration:!0,x:"bottom",y:"right"},applyStyle:{order:900,enabled:!0,fn:function(t){var e,n;return He(t.instance.popper,t.styles),e=t.instance.popper,n=t.attributes,Object.keys(n).forEach(function(t){!1!==n[t]?e.setAttribute(t,n[t]):e.removeAttribute(t)}),t.arrowElement&&Object.keys(t.arrowStyles).length&&He(t.arrowElement,t.arrowStyles),t},onLoad:function(t,e,n,i,o){var r=De(o,e,t,n.positionFixed),s=we(n.placement,r,e,t,n.modifiers.flip.boundariesElement,n.modifiers.flip.padding);return e.setAttribute("x-placement",s),He(e,{position:n.positionFixed?"fixed":"absolute"}),n},gpuAcceleration:void 0}}},Ve=function(){function t(e,n){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};de(this,t),this.scheduleUpdate=function(){return requestAnimationFrame(i.update)},this.update=$t(this.update.bind(this)),this.options=me({},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(me({},t.Defaults.modifiers,o.modifiers)).forEach(function(e){i.options.modifiers[e]=me({},t.Defaults.modifiers[e]||{},o.modifiers?o.modifiers[e]:{})}),this.modifiers=Object.keys(this.options.modifiers).map(function(t){return me({name:t},i.options.modifiers[t])}).sort(function(t,e){return t.order-e.order}),this.modifiers.forEach(function(t){t.enabled&&Jt(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 pe(t,[{key:"update",value:function(){return function(){if(!this.state.isDestroyed){var t={instance:this,styles:{},arrowStyles:{},attributes:{},flipped:!1,offsets:{}};t.offsets.reference=De(this.state,this.popper,this.reference,this.options.positionFixed),t.placement=we(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=Ae(this.popper,t.offsets.reference,t.placement),t.offsets.popper.position=this.options.positionFixed?"fixed":"absolute",t=Le(this.modifiers,t),this.state.isCreated?this.options.onUpdate(t):(this.state.isCreated=!0,this.options.onCreate(t))}}.call(this)}},{key:"destroy",value:function(){return function(){return this.state.isDestroyed=!0,Se(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[Ce("transform")]=""),this.disableEventListeners(),this.options.removeOnDestroy&&this.popper.parentNode.removeChild(this.popper),this}.call(this)}},{key:"enableEventListeners",value:function(){return function(){this.state.eventsEnabled||(this.state=ke(this.reference,this.options,this.state,this.scheduleUpdate))}.call(this)}},{key:"disableEventListeners",value:function(){return Pe.call(this)}}]),t}();Ve.Utils=("undefined"!=typeof window?window:global).PopperUtils,Ve.placements=Re,Ve.Defaults=Ke;var Ye="dropdown",Qe="bs.dropdown",Ge="."+Qe,qe=new RegExp("38|40|27"),Xe={HIDE:"hide"+Ge,HIDDEN:"hidden"+Ge,SHOW:"show"+Ge,SHOWN:"shown"+Ge,CLICK:"click"+Ge,CLICK_DATA_API:"click"+Ge+".data-api",KEYDOWN_DATA_API:"keydown"+Ge+".data-api",KEYUP_DATA_API:"keyup"+Ge+".data-api"},ze="disabled",Ze="show",$e="dropup",Je="dropright",tn="dropleft",en="dropdown-menu-right",nn="position-static",on='[data-toggle="dropdown"]',rn=".dropdown form",sn=".dropdown-menu",an=".navbar-nav",ln=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",cn="top-start",fn="top-end",un="bottom-start",hn="bottom-end",dn="right-start",pn="left-start",gn={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},mn={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},_n=function(){function t(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners(),E.setData(t,Qe,this)}var n=t.prototype;return n.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains(ze)){var e=t._getParentFromElement(this._element),n=this._menu.classList.contains(Ze);if(t._clearMenus(),!n){var i={relatedTarget:this._element};if(!j.trigger(e,Xe.SHOW,i).defaultPrevented){if(!this._inNavbar){if(void 0===Ve)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var o=this._element;"parent"===this._config.reference?o=e:h(this._config.reference)&&(o=this._config.reference,void 0!==this._config.reference.jquery&&(o=this._config.reference[0])),"scrollParent"!==this._config.boundary&&e.classList.add(nn),this._popper=new Ve(o,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&!g(F.closest(e,an)).length&&g(document.body.children).forEach(function(t){return j.on(t,"mouseover",null,function(){})}),this._element.focus(),this._element.setAttribute("aria-expanded",!0),ft.toggleClass(this._menu,Ze),ft.toggleClass(e,Ze),j.trigger(e,Xe.SHOWN,i)}}}},n.show=function(){if(!(this._element.disabled||this._element.classList.contains(ze)||this._menu.classList.contains(Ze))){var e=t._getParentFromElement(this._element),n={relatedTarget:this._element};j.trigger(e,Xe.SHOW,n).defaultPrevented||(ft.toggleClass(this._menu,Ze),ft.toggleClass(e,Ze),j.trigger(e,Xe.SHOWN,n))}},n.hide=function(){if(!this._element.disabled&&!this._element.classList.contains(ze)&&this._menu.classList.contains(Ze)){var e=t._getParentFromElement(this._element),n={relatedTarget:this._element};j.trigger(e,Xe.HIDE,n).defaultPrevented||(ft.toggleClass(this._menu,Ze),ft.toggleClass(e,Ze),j.trigger(e,Xe.HIDDEN,n))}},n.dispose=function(){E.removeData(this._element,Qe),j.off(this._element,Ge),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},n.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},n._addEventListeners=function(){var t=this;j.on(this._element,Xe.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},n._getConfig=function(t){return t=i({},this.constructor.Default,ft.getDataAttributes(this._element),t),p(Ye,t,this.constructor.DefaultType),t},n._getMenuElement=function(){if(!this._menu){var e=t._getParentFromElement(this._element);e&&(this._menu=F.findOne(sn,e))}return this._menu},n._getPlacement=function(){var t=this._element.parentNode,e=un;return t.classList.contains($e)?(e=cn,this._menu.classList.contains(en)&&(e=fn)):t.classList.contains(Je)?e=dn:t.classList.contains(tn)?e=pn:this._menu.classList.contains(en)&&(e=hn),e},n._detectNavbar=function(){return Boolean(F.closest(this._element,".navbar"))},n._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=i({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},n._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),t},t._dropdownInterface=function(e,n){var i=E.getData(e,Qe);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=g(F.find(on)),i=0,o=n.length;i<o;i++){var r=t._getParentFromElement(n[i]),s=E.getData(n[i],Qe),a={relatedTarget:n[i]};if(e&&"click"===e.type&&(a.clickEvent=e),s){var l=s._menu;if(r.classList.contains(Ze))if(!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&r.contains(e.target)))j.trigger(r,Xe.HIDE,a).defaultPrevented||("ontouchstart"in document.documentElement&&g(document.body.children).forEach(function(t){return j.off(t,"mouseover",null,function(){})}),n[i].setAttribute("aria-expanded","false"),l.classList.remove(Ze),r.classList.remove(Ze),j.trigger(r,Xe.HIDDEN,a))}}},t._getParentFromElement=function(t){var e,n=c(t);return n&&(e=F.findOne(n)),e||t.parentNode},t._dataApiKeydownHandler=function(e){if((/input|textarea/i.test(e.target.tagName)?!(32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||F.closest(e.target,sn))):qe.test(e.which))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!this.classList.contains(ze))){var n=t._getParentFromElement(this),i=n.classList.contains(Ze);if(!i||i&&(27===e.which||32===e.which))return 27===e.which&&j.trigger(F.findOne(on,n),"focus"),void t._clearMenus();var o=g(F.find(ln,n));if(o.length){var r=o.indexOf(e.target);38===e.which&&r>0&&r--,40===e.which&&r<o.length-1&&r++,r<0&&(r=0),o[r].focus()}}},t._getInstance=function(t){return E.getData(t,Qe)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return gn}},{key:"DefaultType",get:function(){return mn}}]),t}();if(j.on(document,Xe.KEYDOWN_DATA_API,on,_n._dataApiKeydownHandler),j.on(document,Xe.KEYDOWN_DATA_API,sn,_n._dataApiKeydownHandler),j.on(document,Xe.CLICK_DATA_API,_n._clearMenus),j.on(document,Xe.KEYUP_DATA_API,_n._clearMenus),j.on(document,Xe.CLICK_DATA_API,on,function(t){t.preventDefault(),t.stopPropagation(),_n._dropdownInterface(this,"toggle")}),j.on(document,Xe.CLICK_DATA_API,rn,function(t){return t.stopPropagation()}),void 0!==a){var vn=a.fn[Ye];a.fn[Ye]=_n._jQueryInterface,a.fn[Ye].Constructor=_n,a.fn[Ye].noConflict=function(){return a.fn[Ye]=vn,_n._jQueryInterface}}var bn="bs.modal",En="."+bn,yn={backdrop:!0,keyboard:!0,focus:!0,show:!0},wn={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Dn={HIDE:"hide"+En,HIDDEN:"hidden"+En,SHOW:"show"+En,SHOWN:"shown"+En,FOCUSIN:"focusin"+En,RESIZE:"resize"+En,CLICK_DISMISS:"click.dismiss"+En,KEYDOWN_DISMISS:"keydown.dismiss"+En,MOUSEUP_DISMISS:"mouseup.dismiss"+En,MOUSEDOWN_DISMISS:"mousedown.dismiss"+En,CLICK_DATA_API:"click"+En+".data-api"},Tn="modal-dialog-scrollable",In="modal-scrollbar-measure",An="modal-backdrop",On="modal-open",Ln="fade",Sn="show",Cn={DIALOG:".modal-dialog",MODAL_BODY:".modal-body",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top"},Nn=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=F.findOne(Cn.DIALOG,t),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,E.setData(t,bn,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(Ln)&&(this._isTransitioning=!0);var n=j.trigger(this._element,Dn.SHOW,{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),j.on(this._element,Dn.CLICK_DISMISS,Cn.DATA_DISMISS,function(t){return e.hide(t)}),j.on(this._dialog,Dn.MOUSEDOWN_DISMISS,function(){j.one(e._element,Dn.MOUSEUP_DISMISS,function(t){t.target===e._element&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},n.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=j.trigger(this._element,Dn.HIDE);if(this._isShown&&!n.defaultPrevented){this._isShown=!1;var i=this._element.classList.contains(Ln);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),j.off(document,Dn.FOCUSIN),this._element.classList.remove(Sn),j.off(this._element,Dn.CLICK_DISMISS),j.off(this._dialog,Dn.MOUSEDOWN_DISMISS),i){var o=f(this._element);j.one(this._element,s,function(t){return e._hideModal(t)}),d(this._element,o)}else this._hideModal()}}},n.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return j.off(t,En)}),j.off(document,Dn.FOCUSIN),E.removeData(this._element,bn),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},n.handleUpdate=function(){this._adjustDialog()},n._getConfig=function(t){return t=i({},yn,t),p("modal",t,wn),t},n._showElement=function(t){var e=this,n=this._element.classList.contains(Ln);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(Tn)?F.findOne(Cn.MODAL_BODY,this._dialog).scrollTop=0:this._element.scrollTop=0,n&&v(this._element),this._element.classList.add(Sn),this._config.focus&&this._enforceFocus();var i=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,j.trigger(e._element,Dn.SHOWN,{relatedTarget:t})};if(n){var o=f(this._dialog);j.one(this._dialog,s,i),d(this._dialog,o)}else i()},n._enforceFocus=function(){var t=this;j.off(document,Dn.FOCUSIN),j.on(document,Dn.FOCUSIN,function(e){document===e.target||t._element===e.target||t._element.contains(e.target)||t._element.focus()})},n._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?j.on(this._element,Dn.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):this._isShown||j.off(this._element,Dn.KEYDOWN_DISMISS)},n._setResizeEvent=function(){var t=this;this._isShown?j.on(window,Dn.RESIZE,function(e){return t.handleUpdate(e)}):j.off(window,Dn.RESIZE)},n._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){document.body.classList.remove(On),t._resetAdjustments(),t._resetScrollbar(),j.trigger(t._element,Dn.HIDDEN)})},n._removeBackdrop=function(){this._backdrop&&(this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null)},n._showBackdrop=function(t){var e=this,n=this._element.classList.contains(Ln)?Ln:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=An,n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),j.on(this._element,Dn.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&v(this._backdrop),this._backdrop.classList.add(Sn),!t)return;if(!n)return void t();var i=f(this._backdrop);j.one(this._backdrop,s,t),d(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove(Sn);var o=function(){e._removeBackdrop(),t&&t()};if(this._element.classList.contains(Ln)){var r=f(this._backdrop);j.one(this._backdrop,s,o),d(this._backdrop,r)}else o()}else t&&t()},n._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},n._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},n._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},n._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){g(F.find(Cn.FIXED_CONTENT)).forEach(function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];ft.setDataAttribute(e,"padding-right",n),e.style.paddingRight=parseFloat(i)+t._scrollbarWidth+"px"}),g(F.find(Cn.STICKY_CONTENT)).forEach(function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];ft.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"];ft.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add(On)},n._resetScrollbar=function(){g(F.find(Cn.FIXED_CONTENT)).forEach(function(t){var e=ft.getDataAttribute(t,"padding-right");void 0!==e&&(ft.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)}),g(F.find(""+Cn.STICKY_CONTENT)).forEach(function(t){var e=ft.getDataAttribute(t,"margin-right");void 0!==e&&(ft.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)});var t=ft.getDataAttribute(document.body,"padding-right");void 0===t?document.body.style.paddingRight="":(ft.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},n._getScrollbarWidth=function(){var t=document.createElement("div");t.className=In,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t._jQueryInterface=function(e,n){return this.each(function(){var o=E.getData(this,bn),r=i({},yn,ft.getDataAttributes(this),"object"==typeof e&&e?e:{});if(o||(o=new t(this,r)),"string"==typeof e){if(void 0===o[e])throw new TypeError('No method named "'+e+'"');o[e](n)}else r.show&&o.show(n)})},t._getInstance=function(t){return E.getData(t,bn)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return yn}}]),t}();if(j.on(document,Dn.CLICK_DATA_API,Cn.DATA_TOGGLE,function(t){var e,n=this,o=c(this);o&&(e=F.findOne(o));var r=E.getData(e,bn)?"toggle":i({},ft.getDataAttributes(e),ft.getDataAttributes(this));"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),j.one(e,Dn.SHOW,function(t){t.defaultPrevented||j.one(e,Dn.HIDDEN,function(){m(n)&&n.focus()})});var s=E.getData(e,bn);s||(s=new Nn(e,r)),s.show(this)}),void 0!==a){var kn=a.fn.modal;a.fn.modal=Nn._jQueryInterface,a.fn.modal.Constructor=Nn,a.fn.modal.noConflict=function(){return a.fn.modal=kn,Nn._jQueryInterface}}var Pn=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],xn=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,Hn=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,Mn=function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Pn.indexOf(n)||Boolean(t.nodeValue.match(xn)||t.nodeValue.match(Hn));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,r=i.length;o<r;o++)if(n.match(i[o]))return!0;return!1},jn={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function Rn(t,e,n){if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),r=g(i.body.querySelectorAll("*")),s=function(t,n){var i=r[t],s=i.nodeName.toLowerCase();if(-1===o.indexOf(s))return i.parentNode.removeChild(i),"continue";var a=g(i.attributes),l=[].concat(e["*"]||[],e[s]||[]);a.forEach(function(t){Mn(t,l)||i.removeAttribute(t.nodeName)})},a=0,l=r.length;a<l;a++)s(a);return i.body.innerHTML}var Wn="tooltip",Fn=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Un=["sanitize","whiteList","sanitizeFn"],Bn={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"},Kn={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Vn={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:jn},Yn="show",Qn="out",Gn={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"},qn="fade",Xn="show",zn=".tooltip-inner",Zn=".tooltip-arrow",$n="hover",Jn="focus",ti="click",ei="manual",ni=function(){function t(t,e){if(void 0===Ve)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners(),E.setData(t,this.constructor.DATA_KEY,this)}var n=t.prototype;return n.enable=function(){this._isEnabled=!0},n.disable=function(){this._isEnabled=!1},n.toggleEnabled=function(){this._isEnabled=!this._isEnabled},n.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=E.getData(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E.setData(t.delegateTarget,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(Xn))return void this._leave(null,this);this._enter(null,this)}},n.dispose=function(){clearTimeout(this._timeout),E.removeData(this.element,this.constructor.DATA_KEY),j.off(this.element,this.constructor.EVENT_KEY),j.off(F.closest(this.element,".modal"),"hide.bs.modal"),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},n.show=function(){var t=this;if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var e=j.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=l(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&o.classList.add(qn);var a="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,c=this._getAttachment(a);this.addAttachmentClass(c);var u=this._getContainer();E.setData(o,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||u.appendChild(o),j.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new Ve(this.element,o,{placement:c,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:Zn},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){return t._handlePopperPlacementChange(e)}}),o.classList.add(Xn),"ontouchstart"in document.documentElement&&g(document.body.children).forEach(function(t){j.on(t,"mouseover",function(){})});var h=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,j.trigger(t.element,t.constructor.Event.SHOWN),e===Qn&&t._leave(null,t)};if(this.tip.classList.contains(qn)){var p=f(this.tip);j.one(this.tip,s,h),d(this.tip,p)}else h()}},n.hide=function(t){var e=this,n=this.getTipElement(),i=function(){e._hoverState!==Yn&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),j.trigger(e.element,e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(!j.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){if(n.classList.remove(Xn),"ontouchstart"in document.documentElement&&g(document.body.children).forEach(function(t){return j.off(t,"mouseover",_)}),this._activeTrigger[ti]=!1,this._activeTrigger[Jn]=!1,this._activeTrigger[$n]=!1,this.tip.classList.contains(qn)){var o=f(n);j.one(n,s,i),d(n,o)}else i();this._hoverState=""}},n.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},n.isWithContent=function(){return Boolean(this.getTitle())},n.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+t)},n.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},n.setContent=function(){var t=this.getTipElement();this.setElementContent(F.findOne(zn,t),this.getTitle()),t.classList.remove(qn),t.classList.remove(Xn)},n.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&(e.nodeType||e.jquery)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.innerText=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=Rn(e,this.config.whiteList,this.config.sanitizeFn)),t.innerHTML=e):t.innerText=e)},n.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},n._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=i({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},n._getContainer=function(){return!1===this.config.container?document.body:h(this.config.container)?this.config.container:F.findOne(this.config.container)},n._getAttachment=function(t){return Kn[t.toUpperCase()]},n._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(e){if("click"===e)j.on(t.element,t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(e!==ei){var n=e===$n?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i=e===$n?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;j.on(t.element,n,t.config.selector,function(e){return t._enter(e)}),j.on(t.element,i,t.config.selector,function(e){return t._leave(e)})}}),j.on(F.closest(this.element,".modal"),"hide.bs.modal",function(){t.element&&t.hide()}),this.config.selector?this.config=i({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},n._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},n._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||E.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?Jn:$n]=!0),e.getTipElement().classList.contains(Xn)||e._hoverState===Yn?e._hoverState=Yn:(clearTimeout(e._timeout),e._hoverState=Yn,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===Yn&&e.show()},e.config.delay.show):e.show())},n._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||E.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),E.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?Jn:$n]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=Qn,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===Qn&&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=ft.getDataAttributes(this.element);return Object.keys(e).forEach(function(t){-1!==Un.indexOf(t)&&delete e[t]}),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=i({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),p(Wn,t,this.constructor.DefaultType),t.sanitize&&(t.template=Rn(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(Fn);null!==e&&e.length&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},n._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},n._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(t.classList.remove(qn),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,"bs.tooltip"),i="object"==typeof e&&e;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,i)),"string"==typeof e)){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return E.getData(t,"bs.tooltip")},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Vn}},{key:"NAME",get:function(){return Wn}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return Gn}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Bn}}]),t}();if(void 0!==a){var ii=a.fn.tooltip;a.fn.tooltip=ni._jQueryInterface,a.fn.tooltip.Constructor=ni,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=ii,ni._jQueryInterface}}var oi="popover",ri=new RegExp("(^|\\s)bs-popover\\S+","g"),si=i({},ni.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>'}),ai=i({},ni.DefaultType,{content:"(string|element|function)"}),li="fade",ci="show",fi=".popover-header",ui=".popover-body",hi={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"},di=function(t){var n,i;function o(){return t.apply(this,arguments)||this}i=t,(n=o).prototype=Object.create(i.prototype),n.prototype.constructor=n,n.__proto__=i;var r=o.prototype;return r.isWithContent=function(){return this.getTitle()||this._getContent()},r.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},r.setContent=function(){var t=this.getTipElement();this.setElementContent(F.findOne(fi,t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(F.findOne(ui,t),e),t.classList.remove(li),t.classList.remove(ci)},r._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},r._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(ri);null!==e&&e.length>0&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},o._jQueryInterface=function(t){return this.each(function(){var e=E.getData(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),E.setData(this,"bs.popover",e)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})},o._getInstance=function(t){return E.getData(t,"bs.popover")},e(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return si}},{key:"NAME",get:function(){return oi}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return hi}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return ai}}]),o}(ni);if(void 0!==a){var pi=a.fn.popover;a.fn.popover=di._jQueryInterface,a.fn.popover.Constructor=di,a.fn.popover.noConflict=function(){return a.fn.popover=pi,di._jQueryInterface}}var gi="scrollspy",mi="bs.scrollspy",_i="."+mi,vi={offset:10,method:"auto",target:""},bi={offset:"number",method:"string",target:"(string|element)"},Ei={ACTIVATE:"activate"+_i,SCROLL:"scroll"+_i,LOAD_DATA_API:"load"+_i+".data-api"},yi={DROPDOWN_ITEM:"dropdown-item",ACTIVE:"active"},wi={DATA_SPY:'[data-spy="scroll"]',NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_TOGGLE:".dropdown-toggle"},Di="offset",Ti="position",Ii=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+" "+wi.NAV_LINKS+","+this._config.target+" "+wi.LIST_ITEMS+","+this._config.target+" ."+yi.DROPDOWN_ITEM,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,j.on(this._scrollElement,Ei.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process(),E.setData(t,mi,this)}var n=t.prototype;return n.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?Di:Ti,n="auto"===this._config.method?e:this._config.method,i=n===Ti?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),g(F.find(this._selector)).map(function(t){var e,o=c(t);if(o&&(e=F.findOne(o)),e){var r=e.getBoundingClientRect();if(r.width||r.height)return[ft[n](e).top+i,o]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},n.dispose=function(){E.removeData(this._element,mi),j.off(this._scrollElement,_i),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},n._getConfig=function(t){if("string"!=typeof(t=i({},vi,"object"==typeof t&&t?t:{})).target){var e=t.target.id;e||(e=l(gi),t.target.id=e),t.target="#"+e}return p(gi,t,bi),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=F.findOne(e.join(","));n.classList.contains(yi.DROPDOWN_ITEM)?(F.findOne(wi.DROPDOWN_TOGGLE,F.closest(n,wi.DROPDOWN)).classList.add(yi.ACTIVE),n.classList.add(yi.ACTIVE)):(n.classList.add(yi.ACTIVE),F.parents(n,wi.NAV_LIST_GROUP).forEach(function(t){F.prev(t,wi.NAV_LINKS+", "+wi.LIST_ITEMS).forEach(function(t){return t.classList.add(yi.ACTIVE)}),F.prev(t,wi.NAV_ITEMS).forEach(function(t){F.children(t,wi.NAV_LINKS).forEach(function(t){return t.classList.add(yi.ACTIVE)})})})),j.trigger(this._scrollElement,Ei.ACTIVATE,{relatedTarget:t})},n._clear=function(){g(F.find(this._selector)).filter(function(t){return t.classList.contains(yi.ACTIVE)}).forEach(function(t){return t.classList.remove(yi.ACTIVE)})},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,mi);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 E.getData(t,mi)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return vi}}]),t}();if(j.on(window,Ei.LOAD_DATA_API,function(){g(F.find(wi.DATA_SPY)).forEach(function(t){return new Ii(t,ft.getDataAttributes(t))})}),void 0!==a){var Ai=a.fn[gi];a.fn[gi]=Ii._jQueryInterface,a.fn[gi].Constructor=Ii,a.fn[gi].noConflict=function(){return a.fn[gi]=Ai,Ii._jQueryInterface}}var Oi="bs.tab",Li="."+Oi,Si={HIDE:"hide"+Li,HIDDEN:"hidden"+Li,SHOW:"show"+Li,SHOWN:"shown"+Li,CLICK_DATA_API:"click"+Li+".data-api"},Ci="dropdown-menu",Ni="active",ki="disabled",Pi="fade",xi="show",Hi=".dropdown",Mi=".nav, .list-group",ji=".active",Ri=":scope > li > .active",Wi='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',Fi=".dropdown-toggle",Ui=":scope > .dropdown-menu .active",Bi=function(){function t(t){this._element=t,E.setData(this._element,Oi,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(Ni)||this._element.classList.contains(ki))){var e,n,i=F.closest(this._element,Mi),o=c(this._element);if(i){var r="UL"===i.nodeName||"OL"===i.nodeName?Ri:ji;n=(n=g(F.find(r,i)))[n.length-1]}var s=null;if(n&&(s=j.trigger(n,Si.HIDE,{relatedTarget:this._element})),!(j.trigger(this._element,Si.SHOW,{relatedTarget:n}).defaultPrevented||null!==s&&s.defaultPrevented)){o&&(e=F.findOne(o)),this._activate(this._element,i);var a=function(){j.trigger(n,Si.HIDDEN,{relatedTarget:t._element}),j.trigger(t._element,Si.SHOWN,{relatedTarget:n})};e?this._activate(e,e.parentNode,a):a()}}},n.dispose=function(){E.removeData(this._element,Oi),this._element=null},n._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?F.children(e,ji):F.find(Ri,e))[0],r=n&&o&&o.classList.contains(Pi),a=function(){return i._transitionComplete(t,o,n)};if(o&&r){var l=f(o);o.classList.remove(xi),j.one(o,s,a),d(o,l)}else a()},n._transitionComplete=function(t,e,n){if(e){e.classList.remove(Ni);var i=F.findOne(Ui,e.parentNode);i&&i.classList.remove(Ni),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add(Ni),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),v(t),t.classList.contains(Pi)&&t.classList.add(xi),t.parentNode&&t.parentNode.classList.contains(Ci))&&(F.closest(t,Hi)&&g(F.find(Fi)).forEach(function(t){return t.classList.add(Ni)}),t.setAttribute("aria-expanded",!0));n&&n()},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,Oi)||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 E.getData(t,Oi)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(j.on(document,Si.CLICK_DATA_API,Wi,function(t){t.preventDefault(),(E.getData(this,Oi)||new Bi(this)).show()}),void 0!==a){var Ki=a.fn.tab;a.fn.tab=Bi._jQueryInterface,a.fn.tab.Constructor=Bi,a.fn.tab.noConflict=function(){return a.fn.tab=Ki,Bi._jQueryInterface}}var Vi="bs.toast",Yi="."+Vi,Qi={CLICK_DISMISS:"click.dismiss"+Yi,HIDE:"hide"+Yi,HIDDEN:"hidden"+Yi,SHOW:"show"+Yi,SHOWN:"shown"+Yi},Gi="fade",qi="hide",Xi="show",zi="showing",Zi={animation:"boolean",autohide:"boolean",delay:"number"},$i={animation:!0,autohide:!0,delay:500},Ji='[data-dismiss="toast"]',to=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),E.setData(t,Vi,this)}var n=t.prototype;return n.show=function(){var t=this;j.trigger(this._element,Qi.SHOW),this._config.animation&&this._element.classList.add(Gi);var e=function(){t._element.classList.remove(zi),t._element.classList.add(Xi),j.trigger(t._element,Qi.SHOWN),t._config.autohide&&t.hide()};if(this._element.classList.remove(qi),this._element.classList.add(zi),this._config.animation){var n=f(this._element);j.one(this._element,s,e),d(this._element,n)}else e()},n.hide=function(t){var e=this;this._element.classList.contains(Xi)&&(j.trigger(this._element,Qi.HIDE),t?this._close():this._timeout=setTimeout(function(){e._close()},this._config.delay))},n.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(Xi)&&this._element.classList.remove(Xi),j.off(this._element,Qi.CLICK_DISMISS),E.removeData(this._element,Vi),this._element=null,this._config=null},n._getConfig=function(t){return t=i({},$i,ft.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),p("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;j.on(this._element,Qi.CLICK_DISMISS,Ji,function(){return t.hide(!0)})},n._close=function(){var t=this,e=function(){t._element.classList.add(qi),j.trigger(t._element,Qi.HIDDEN)};if(this._element.classList.remove(Xi),this._config.animation){var n=f(this._element);j.one(this._element,s,e),d(this._element,n)}else e()},t._jQueryInterface=function(e){return this.each(function(){var n=E.getData(this,Vi);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 E.getData(t,Vi)},e(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return Zi}},{key:"Default",get:function(){return $i}}]),t}();if(void 0!==a){var eo=a.fn.toast;a.fn.toast=to._jQueryInterface,a.fn.toast.Constructor=to,a.fn.toast.noConflict=function(){return a.fn.toast=eo,to._jQueryInterface}}return{Alert:G,Button:st,Carousel:Nt,Collapse:Qt,Dropdown:_n,Modal:Nn,Popover:di,ScrollSpy:Ii,Tab:Bi,Toast:to,Tooltip:ni}});
//# 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 e7a644e1f0..b94d5f9ff1 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/eventHandler.js","../../js/src/dom/selectorEngine.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"],"names":["storeData","id","TRANSITION_END","jQuery","window","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","err","getTransitionDurationFromElement","_window$getComputedSt","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","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","noop","reflow","offsetHeight","mapData","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Polyfill","e","defaultPreventedPreservedOnDispatch","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","find","Element","prototype","querySelectorAll","findOne","scopeSelectorRegex","this","hasId","Boolean","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","uidList","i","length","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","oneOff","_normalizeParams","handlers","previousFn","fn","domElements","target","EventHandler","off","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","substr","keyHandlers","trigger","args","jQueryEvent","isNative","bubbles","nativeDispatch","evt","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","findFn","SelectorEngine","documentElement","children","_this","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","siblings","previous","previousSibling","DATA_KEY","EVENT_KEY","CLOSE","CLOSED","CLICK_DATA_API","ClassName","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","Selector","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","NAME","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","ACTIVE","ACTIVE_ITEM","ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","pointerType","clientX","touches","end","clearTimeout","itemImg","move","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOW","SHOWN","HIDE","HIDDEN","Dimension","ACTIVES","DATA_TOGGLE","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","isBrowser","longerTimeoutBrowsers","timeoutDuration","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","css","ownerDocument","defaultView","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","upperSide","arguments","undefined","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","classCallCheck","TypeError","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","protoProps","staticProps","_extends","assign","source","hasOwnProperty","getClientRect","offsets","right","bottom","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","reference","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","isFixed","_getWindowSizes","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","map","area","_ref","sort","a","b","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","check","Array","runModifiers","modifiers","ends","prop","findIndex","cur","console","warn","enabled","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","toCheck","getWindow","setupEventListeners","options","updateBound","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","disableEventListeners","cancelAnimationFrame","scheduleUpdate","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","concat","reverse","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","positionFixed","removeOnDestroy","onCreate","onUpdate","shift","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","flip","flipped","originalPlacement","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","getOppositeVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","willChange","invertTop","invertLeft","x-placement","arrowStyles","applyStyle","onLoad","modifierOptions","Popper","requestAnimationFrame","update","isDestroyed","isCreated","enableEventListeners","Utils","global","PopperUtils","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","AttachmentMap","boundary","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","referenceElement","_getPopperConfig","destroy","stopPropagation","constructor","_getPlacement","parentDropdown","_getOffset","popperConfig","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","hideEvent","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","_this9","actualPadding","calculatedPadding","actualMargin","calculatedMargin","margin","scrollDiv","scrollbarWidth","_this10","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","*","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","_loop","elName","attributeList","whitelistedAttributes","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","fallbackPlacement","sanitize","AUTO","TOP","RIGHT","BOTTOM","LEFT","HoverState","INSERTED","FOCUSOUT","Trigger","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","findShadowRoot","attachShadow","getRootNode","root","ShadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_handlePopperPlacementChange","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","content","innerText","textContent","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","token","tClass","popperData","popperInstance","initConfigAnimation","Popover","_getContent","method","ACTIVATE","SCROLL","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","spy","Tab","listElement","itemSelector","active","_transitionComplete","dropdownChild","dropdown","autohide","Toast","withoutTimeout","_close"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst jQuery = window.jQuery\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = (obj) => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = (prefix) => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n}\n\nconst getSelectorFromElement = (element) => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = (element) => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = (element) => {\n 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' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = (nodeList) => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = (element) => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = (element) => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = (element) => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n 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","/**\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 {\n getUID\n} from '../util/index'\n\n/* istanbul ignore next */\nconst Polyfill = (() => {\n // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\n const 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\n let find = Element.prototype.querySelectorAll\n let findOne = Element.prototype.querySelector\n\n const scopeSelectorRegex = /:scope\\b/\n const supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (e) {\n return false\n }\n\n return true\n })()\n\n if (!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\n return {\n defaultPreventedPreservedOnDispatch,\n find,\n findOne\n }\n})()\n\nexport default Polyfill\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from '../util/index'\nimport Polyfill from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu',\n 'mousewheel', 'DOMMouseScroll',\n 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend',\n 'keydown', 'keypress', 'keyup',\n 'orientationchange',\n 'touchstart', 'touchmove', 'touchend', 'touchcancel',\n 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel',\n 'gesturestart', 'gesturechange', 'gestureend',\n 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout',\n 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange',\n 'error', 'abort', '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 element.uidEvent = uid\n\n return eventRegistry[uid] = 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.charCode : event.keyCode\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 && 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 uidList = Object.keys(events)\n\n for (let i = 0; i < uidList.length; i++) {\n const uid = uidList[i]\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\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 ? bootstrapHandler(element, handler) : bootstrapDelegationHandler(element, handler, delegationFn)\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 === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach((handlerKey) => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach((elementEvent) => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach((keyHandlers) => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = 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 (!Polyfill.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/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Polyfill from './polyfill'\nimport {\n makeArray\n} from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst findFn = Polyfill.find\nconst findOne = Polyfill.findOne\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 if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter((child) => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return element.closest(selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, (event) => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input:not([type=\"hidden\"])',\n ACTIVE : '.active',\n BUTTON : '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API : `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n 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 button.classList.add(ClassName.FOCUS)\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.remove(ClassName.FOCUS)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, (chr) => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach((key) => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true,\n touch : true\n}\n\nconst DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean',\n touch : 'boolean'\n}\n\nconst Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n}\n\nconst Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHSTART : `touchstart${EVENT_KEY}`,\n TOUCHMOVE : `touchmove${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n POINTERDOWN : `pointerdown${EVENT_KEY}`,\n POINTERUP : `pointerup${EVENT_KEY}`,\n DRAG_START : `dragstart${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item',\n POINTER_EVENT : 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n ITEM_IMG : '.carousel-item img',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH : 'touch',\n PEN : 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, (event) => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, (event) => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = (event) => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = (event) => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = (event) => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach((itemImg) => {\n EventHandler.on(itemImg, Event.DRAG_START, (e) => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, (event) => start(event))\n EventHandler.on(this._element, Event.POINTERUP, (event) => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, (event) => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, (event) => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, (event) => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode\n ? makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode))\n : []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new Error(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle : true,\n parent : ''\n}\n\nconst DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n}\n\nconst Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n}\n\nconst Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n}\n\nconst Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter((foundElem) => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter((elem) => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter((elem) => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach((elemActive) => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach((element) => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (isElement(this._config.parent)) {\n parent = this._config.parent\n\n // it's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined' || typeof this._config.parent[0] !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(this._config.parent)\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach((element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach((elem) => {\n if (!isOpen) {\n elem.classList.add(ClassName.COLLAPSED)\n } else {\n elem.classList.remove(ClassName.COLLAPSED)\n }\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach((element) => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.7\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\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\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 {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n}\n\nconst Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n}\n\nconst DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach((elem) => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach((elem) => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n}\n\nconst DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE : 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n DIALOG : '.modal-dialog',\n MODAL_BODY : '.modal-body',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, (event) => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, (event) => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach((htmlElement) => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE)\n ? ClassName.FADE\n : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach((element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach((element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach((element) => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach((element) => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n } else {\n document.body.style.paddingRight = ''\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY)\n ? 'toggle' : {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, (showEvent) => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n makeArray\n} from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach((attr) => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\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\n\nconst DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string|function)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)',\n sanitize : 'boolean',\n sanitizeFn : '(null|function)',\n whiteList : 'object'\n}\n\nconst AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n}\n\nconst Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent',\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW : 'show',\n OUT : 'out'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n TOOLTIP_ARROW : '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n}\n\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot !== null\n ? shadowRoot.contains(this.element)\n : this.element.ownerDocument.documentElement.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach((element) => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach((element) => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach((dataAttr) => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map((token) => token.trim())\n .forEach((tClass) => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n}\n\nconst ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map((token) => token.trim())\n .forEach((tClass) => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset : 10,\n method : 'auto',\n target : ''\n}\n\nconst DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n}\n\nconst Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n}\n\nconst Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\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.id\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\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 : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\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 return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map((selector) => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach((listGroup) => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach((item) => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach((navItem) => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach((item) => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter((node) => node.classList.contains(ClassName.ACTIVE))\n .forEach((node) => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach((spy) => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : ':scope > li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL')\n ? SelectorEngine.find(Selector.ACTIVE_UL, container)\n : SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach((dropdown) => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE : 'fade',\n HIDE : 'hide',\n SHOW : 'show',\n SHOWING : 'showing'\n}\n\nconst DefaultType = {\n animation : 'boolean',\n autohide : 'boolean',\n delay : 'number'\n}\n\nconst Default = {\n animation : true,\n autohide : true,\n delay : 500\n}\n\nconst Selector = {\n DATA_DISMISS : '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n"]} \ No newline at end of file
+{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/eventHandler.js","../../js/src/dom/selectorEngine.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","TRANSITION_END","jQuery","window","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","_window$getComputedSt","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","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","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","noop","reflow","offsetHeight","mapData","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Polyfill","e","defaultPreventedPreservedOnDispatch","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","find","Element","prototype","querySelectorAll","findOne","scopeSelectorRegex","this","hasId","Boolean","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","uidList","i","length","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","oneOff","_normalizeParams","handlers","previousFn","fn","domElements","target","EventHandler","off","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","substr","keyHandlers","trigger","args","jQueryEvent","isNative","bubbles","nativeDispatch","evt","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","findFn","SelectorEngine","documentElement","children","_this","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","siblings","previous","previousSibling","DATA_KEY","EVENT_KEY","CLOSE","CLOSED","CLICK_DATA_API","ClassName","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","Selector","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","NAME","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","ACTIVE","ACTIVE_ITEM","ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","pointerType","clientX","touches","end","clearTimeout","itemImg","move","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOW","SHOWN","HIDE","HIDDEN","Dimension","ACTIVES","DATA_TOGGLE","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","isBrowser","longerTimeoutBrowsers","timeoutDuration","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","css","ownerDocument","defaultView","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","upperSide","arguments","undefined","html","scrollingElement","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","classCallCheck","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","protoProps","staticProps","_extends","assign","source","hasOwnProperty","getClientRect","offsets","right","bottom","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","subtract","modifier","includeScroll","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","reference","padding","boundariesElement","boundaries","excludeScroll","relativeOffset","innerWidth","innerHeight","getViewportOffsetRectRelativeToArtbitraryNode","boundariesNode","isFixed","_getWindowSizes","isPaddingNumber","computeAutoPlacement","placement","refRect","rects","sortedAreas","map","area","_ref","sort","a","b","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","state","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","check","Array","runModifiers","modifiers","ends","prop","findIndex","cur","console","warn","enabled","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","toCheck","getWindow","setupEventListeners","options","updateBound","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","disableEventListeners","cancelAnimationFrame","scheduleUpdate","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","concat","reverse","BEHAVIORS","FLIP","CLOCKWISE","COUNTERCLOCKWISE","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","positionFixed","removeOnDestroy","onCreate","onUpdate","shift","shiftvariation","_data$offsets","isVertical","side","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","flip","flipped","originalPlacement","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariation","flipVariations","getOppositeVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","willChange","invertTop","invertLeft","x-placement","arrowStyles","applyStyle","onLoad","modifierOptions","Popper","requestAnimationFrame","update","isDestroyed","isCreated","enableEventListeners","Utils","global","PopperUtils","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","AttachmentMap","boundary","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","referenceElement","_getPopperConfig","destroy","stopPropagation","constructor","_getPlacement","parentDropdown","_getOffset","popperConfig","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","hideEvent","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","_getScrollbarWidth","_this9","actualPadding","calculatedPadding","actualMargin","calculatedMargin","margin","scrollDiv","scrollbarWidth","_this10","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","*","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","_loop","elName","attributeList","whitelistedAttributes","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","fallbackPlacement","sanitize","AUTO","TOP","RIGHT","BOTTOM","LEFT","HoverState","INSERTED","FOCUSOUT","Trigger","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","findShadowRoot","attachShadow","getRootNode","root","ShadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","_handlePopperPlacementChange","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","content","innerText","textContent","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","token","tClass","popperData","popperInstance","initConfigAnimation","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","item","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","spy","Tab","listElement","itemSelector","active","_transitionComplete","dropdownChild","dropdown","autohide","Toast","withoutTimeout","_close"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n 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 makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/**\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 {\n getUID\n} from '../util/index'\n\n/* istanbul ignore next */\nconst Polyfill = (() => {\n // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\n const 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\n let find = Element.prototype.querySelectorAll\n let findOne = Element.prototype.querySelector\n\n const scopeSelectorRegex = /:scope\\b/\n const supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n })()\n\n if (!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\n return {\n defaultPreventedPreservedOnDispatch,\n find,\n findOne\n }\n})()\n\nexport default Polyfill\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from '../util/index'\nimport Polyfill from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidList = Object.keys(events)\n\n for (let i = 0; i < uidList.length; i++) {\n const uid = uidList[i]\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = 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 (!Polyfill.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/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Polyfill from './polyfill'\nimport {\n makeArray\n} from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst { find: findFn, findOne } = Polyfill\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 if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return element.closest(selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.add(ClassName.FOCUS)\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.remove(ClassName.FOCUS)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.7\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\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\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 {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n makeArray\n} from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"]} \ No newline at end of file
diff --git a/dist/js/bootstrap.esm.js b/dist/js/bootstrap.esm.js
new file mode 100644
index 0000000000..0841fb2e2a
--- /dev/null
+++ b/dist/js/bootstrap.esm.js
@@ -0,0 +1,4949 @@
+/*!
+ * Bootstrap v4.3.1 (https://getbootstrap.com/)
+ * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+import Popper from 'popper.js';
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.3.1): util/index.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+const MAX_UID = 1000000;
+const MILLISECONDS_MULTIPLIER = 1000;
+const TRANSITION_END = 'transitionend';
+const _window = window,
+ jQuery = _window.jQuery; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+
+const toType = obj => ({}).toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
+/**
+ * --------------------------------------------------------------------------
+ * Public Util Api
+ * --------------------------------------------------------------------------
+ */
+
+
+const getUID = prefix => {
+ do {
+ // eslint-disable-next-line no-bitwise
+ prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
+ } while (document.getElementById(prefix));
+
+ return prefix;
+};
+
+const getSelectorFromElement = element => {
+ let selector = element.getAttribute('data-target');
+
+ if (!selector || selector === '#') {
+ const hrefAttr = element.getAttribute('href');
+ selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';
+ }
+
+ try {
+ return document.querySelector(selector) ? selector : null;
+ } catch (error) {
+ return null;
+ }
+};
+
+const getTransitionDurationFromElement = element => {
+ if (!element) {
+ return 0;
+ } // Get transition-duration of the element
+
+
+ let _window$getComputedSt = window.getComputedStyle(element),
+ transitionDuration = _window$getComputedSt.transitionDuration,
+ transitionDelay = _window$getComputedSt.transitionDelay;
+
+ const floatTransitionDuration = parseFloat(transitionDuration);
+ const floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found
+
+ if (!floatTransitionDuration && !floatTransitionDelay) {
+ return 0;
+ } // If multiple durations are defined, take the first
+
+
+ transitionDuration = transitionDuration.split(',')[0];
+ transitionDelay = transitionDelay.split(',')[0];
+ return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;
+};
+
+const triggerTransitionEnd = element => {
+ element.dispatchEvent(new Event(TRANSITION_END));
+};
+
+const isElement = obj => (obj[0] || obj).nodeType;
+
+const emulateTransitionEnd = (element, duration) => {
+ let called = false;
+ const durationPadding = 5;
+ const emulatedDuration = duration + durationPadding;
+
+ function listener() {
+ called = true;
+ element.removeEventListener(TRANSITION_END, listener);
+ }
+
+ element.addEventListener(TRANSITION_END, listener);
+ setTimeout(() => {
+ if (!called) {
+ triggerTransitionEnd(element);
+ }
+ }, emulatedDuration);
+};
+
+const typeCheckConfig = (componentName, config, configTypes) => {
+ Object.keys(configTypes).forEach(property => {
+ const expectedTypes = configTypes[property];
+ const value = config[property];
+ const valueType = value && isElement(value) ? 'element' : toType(value);
+
+ if (!new RegExp(expectedTypes).test(valueType)) {
+ throw new Error(`${componentName.toUpperCase()}: ` + `Option "${property}" provided type "${valueType}" ` + `but expected type "${expectedTypes}".`);
+ }
+ });
+};
+
+const makeArray = nodeList => {
+ if (!nodeList) {
+ return [];
+ }
+
+ return [].slice.call(nodeList);
+};
+
+const isVisible = element => {
+ if (!element) {
+ return false;
+ }
+
+ if (element.style && element.parentNode && element.parentNode.style) {
+ return element.style.display !== 'none' && element.parentNode.style.display !== 'none' && element.style.visibility !== 'hidden';
+ }
+
+ return false;
+};
+
+const findShadowRoot = element => {
+ if (!document.documentElement.attachShadow) {
+ return null;
+ } // Can find the shadow root otherwise it'll return the document
+
+
+ if (typeof element.getRootNode === 'function') {
+ const root = element.getRootNode();
+ return root instanceof ShadowRoot ? root : null;
+ }
+
+ if (element instanceof ShadowRoot) {
+ return element;
+ } // when we don't find a shadow root
+
+
+ if (!element.parentNode) {
+ return null;
+ }
+
+ return findShadowRoot(element.parentNode);
+}; // eslint-disable-next-line no-empty-function
+
+
+const noop = () => function () {};
+
+const reflow = element => element.offsetHeight;
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.3.1): dom/data.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+/**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+const mapData = (() => {
+ const storeData = {};
+ let id = 1;
+ return {
+ set(element, key, data) {
+ if (typeof element.key === 'undefined') {
+ element.key = {
+ key,
+ id
+ };
+ id++;
+ }
+
+ storeData[element.key.id] = data;
+ },
+
+ get(element, key) {
+ if (!element || typeof element.key === 'undefined') {
+ return null;
+ }
+
+ const keyProperties = element.key;
+
+ if (keyProperties.key === key) {
+ return storeData[keyProperties.id];
+ }
+
+ return null;
+ },
+
+ delete(element, key) {
+ if (typeof element.key === 'undefined') {
+ return;
+ }
+
+ const keyProperties = element.key;
+
+ if (keyProperties.key === key) {
+ delete storeData[keyProperties.id];
+ delete element.key;
+ }
+ }
+
+ };
+})();
+
+const Data = {
+ setData(instance, key, data) {
+ mapData.set(instance, key, data);
+ },
+
+ getData(instance, key) {
+ return mapData.get(instance, key);
+ },
+
+ removeData(instance, key) {
+ mapData.delete(instance, key);
+ }
+
+};
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.3.1): dom/polyfill.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+/* istanbul ignore next */
+
+const Polyfill = (() => {
+ // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached
+ const defaultPreventedPreservedOnDispatch = (() => {
+ const e = new CustomEvent('Bootstrap', {
+ cancelable: true
+ });
+ const element = document.createElement('div');
+ element.addEventListener('Bootstrap', () => null);
+ e.preventDefault();
+ element.dispatchEvent(e);
+ return e.defaultPrevented;
+ })();
+
+ let find = Element.prototype.querySelectorAll;
+ let findOne = Element.prototype.querySelector;
+ const scopeSelectorRegex = /:scope\b/;
+
+ const supportScopeQuery = (() => {
+ const element = document.createElement('div');
+
+ try {
+ element.querySelectorAll(':scope *');
+ } catch (error) {
+ return false;
+ }
+
+ return true;
+ })();
+
+ if (!supportScopeQuery) {
+ find = function find(selector) {
+ if (!scopeSelectorRegex.test(selector)) {
+ return this.querySelectorAll(selector);
+ }
+
+ const hasId = Boolean(this.id);
+
+ if (!hasId) {
+ this.id = getUID('scope');
+ }
+
+ let nodeList = null;
+
+ try {
+ selector = selector.replace(scopeSelectorRegex, `#${this.id}`);
+ nodeList = this.querySelectorAll(selector);
+ } finally {
+ if (!hasId) {
+ this.removeAttribute('id');
+ }
+ }
+
+ return nodeList;
+ };
+
+ findOne = function findOne(selector) {
+ if (!scopeSelectorRegex.test(selector)) {
+ return this.querySelector(selector);
+ }
+
+ const matches = find.call(this, selector);
+
+ if (typeof matches[0] !== 'undefined') {
+ return matches[0];
+ }
+
+ return null;
+ };
+ }
+
+ return {
+ defaultPreventedPreservedOnDispatch,
+ find,
+ findOne
+ };
+})();
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.3.1): dom/eventHandler.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+/**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+const namespaceRegex = /[^.]*(?=\..*)\.|.*/;
+const stripNameRegex = /\..*/;
+const keyEventRegex = /^key/;
+const stripUidRegex = /::\d+$/;
+const eventRegistry = {}; // Events storage
+
+let uidEvent = 1;
+const customEvents = {
+ mouseenter: 'mouseover',
+ mouseleave: 'mouseout'
+};
+const 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'];
+/**
+ * ------------------------------------------------------------------------
+ * Private methods
+ * ------------------------------------------------------------------------
+ */
+
+function getUidEvent(element, uid) {
+ return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++;
+}
+
+function getEvent(element) {
+ const uid = getUidEvent(element);
+ element.uidEvent = uid;
+ eventRegistry[uid] = eventRegistry[uid] || {};
+ 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);
+ }
+
+ return fn.apply(element, [event]);
+ };
+}
+
+function bootstrapDelegationHandler(element, selector, fn) {
+ return function handler(event) {
+ const domElements = element.querySelectorAll(selector);
+
+ for (let target = event.target; target && target !== this; target = target.parentNode) {
+ for (let i = domElements.length; i--;) {
+ if (domElements[i] === target) {
+ fixEvent(event, target);
+
+ if (handler.oneOff) {
+ EventHandler.off(element, event.type, fn);
+ }
+
+ return fn.apply(target, [event]);
+ }
+ }
+ } // To please ESLint
+
+
+ return null;
+ };
+}
+
+function findHandler(events, handler, delegationSelector) {
+ if (delegationSelector === void 0) {
+ delegationSelector = null;
+ }
+
+ const uidList = Object.keys(events);
+
+ for (let i = 0; i < uidList.length; i++) {
+ const uid = uidList[i];
+ const event = events[uid];
+
+ if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {
+ return events[uid];
+ }
+ }
+
+ return null;
+}
+
+function normalizeParams(originalTypeEvent, handler, delegationFn) {
+ const delegation = typeof handler === 'string';
+ const originalHandler = delegation ? delegationFn : handler; // allow to get the native events from namespaced events ('click.bs.button' --> 'click')
+
+ let typeEvent = originalTypeEvent.replace(stripNameRegex, '');
+ const custom = customEvents[typeEvent];
+
+ if (custom) {
+ typeEvent = custom;
+ }
+
+ const isNative = nativeEvents.indexOf(typeEvent) > -1;
+
+ if (!isNative) {
+ typeEvent = originalTypeEvent;
+ }
+
+ return [delegation, originalHandler, typeEvent];
+}
+
+function addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {
+ if (typeof originalTypeEvent !== 'string' || !element) {
+ return;
+ }
+
+ if (!handler) {
+ handler = delegationFn;
+ delegationFn = null;
+ }
+
+ const _normalizeParams = normalizeParams(originalTypeEvent, handler, delegationFn),
+ delegation = _normalizeParams[0],
+ originalHandler = _normalizeParams[1],
+ typeEvent = _normalizeParams[2];
+
+ const events = getEvent(element);
+ const handlers = events[typeEvent] || (events[typeEvent] = {});
+ const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null);
+
+ if (previousFn) {
+ previousFn.oneOff = previousFn.oneOff && oneOff;
+ return;
+ }
+
+ const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));
+ const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler);
+ fn.delegationSelector = delegation ? handler : null;
+ fn.originalHandler = originalHandler;
+ fn.oneOff = oneOff;
+ fn.uidEvent = uid;
+ handlers[uid] = fn;
+ element.addEventListener(typeEvent, fn, delegation);
+}
+
+function removeHandler(element, events, typeEvent, handler, delegationSelector) {
+ const fn = findHandler(events[typeEvent], handler, delegationSelector);
+
+ if (fn === null) {
+ return;
+ }
+
+ element.removeEventListener(typeEvent, fn, Boolean(delegationSelector));
+ delete events[typeEvent][fn.uidEvent];
+}
+
+function removeNamespacedHandlers(element, events, typeEvent, namespace) {
+ const storeElementEvent = events[typeEvent] || {};
+ Object.keys(storeElementEvent).forEach(handlerKey => {
+ if (handlerKey.indexOf(namespace) > -1) {
+ const event = storeElementEvent[handlerKey];
+ removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
+ }
+ });
+}
+
+const EventHandler = {
+ on(element, event, handler, delegationFn) {
+ addHandler(element, event, handler, delegationFn, false);
+ },
+
+ one(element, event, handler, delegationFn) {
+ addHandler(element, event, handler, delegationFn, true);
+ },
+
+ off(element, originalTypeEvent, handler, delegationFn) {
+ if (typeof originalTypeEvent !== 'string' || !element) {
+ return;
+ }
+
+ const _normalizeParams2 = normalizeParams(originalTypeEvent, handler, delegationFn),
+ delegation = _normalizeParams2[0],
+ originalHandler = _normalizeParams2[1],
+ typeEvent = _normalizeParams2[2];
+
+ const inNamespace = typeEvent !== originalTypeEvent;
+ const events = getEvent(element);
+ const isNamespace = originalTypeEvent.charAt(0) === '.';
+
+ if (typeof originalHandler !== 'undefined') {
+ // Simplest case: handler is passed, remove that listener ONLY.
+ if (!events || !events[typeEvent]) {
+ return;
+ }
+
+ removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null);
+ return;
+ }
+
+ if (isNamespace) {
+ Object.keys(events).forEach(elementEvent => {
+ removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1));
+ });
+ }
+
+ const storeElementEvent = events[typeEvent] || {};
+ Object.keys(storeElementEvent).forEach(keyHandlers => {
+ const handlerKey = keyHandlers.replace(stripUidRegex, '');
+
+ if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {
+ const event = storeElementEvent[keyHandlers];
+ removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector);
+ }
+ });
+ },
+
+ trigger(element, event, args) {
+ if (typeof event !== 'string' || !element) {
+ return null;
+ }
+
+ const typeEvent = event.replace(stripNameRegex, '');
+ const inNamespace = event !== typeEvent;
+ const isNative = nativeEvents.indexOf(typeEvent) > -1;
+ let jQueryEvent;
+ let bubbles = true;
+ let nativeDispatch = true;
+ let defaultPrevented = false;
+ let evt = null;
+
+ if (inNamespace && typeof jQuery !== 'undefined') {
+ jQueryEvent = jQuery.Event(event, args);
+ jQuery(element).trigger(jQueryEvent);
+ bubbles = !jQueryEvent.isPropagationStopped();
+ nativeDispatch = !jQueryEvent.isImmediatePropagationStopped();
+ defaultPrevented = jQueryEvent.isDefaultPrevented();
+ }
+
+ if (isNative) {
+ evt = document.createEvent('HTMLEvents');
+ evt.initEvent(typeEvent, bubbles, true);
+ } else {
+ evt = new CustomEvent(event, {
+ bubbles,
+ cancelable: true
+ });
+ } // merge custom informations in our event
+
+
+ if (typeof args !== 'undefined') {
+ Object.keys(args).forEach(key => {
+ Object.defineProperty(evt, key, {
+ get() {
+ return args[key];
+ }
+
+ });
+ });
+ }
+
+ if (defaultPrevented) {
+ evt.preventDefault();
+
+ if (!Polyfill.defaultPreventedPreservedOnDispatch) {
+ Object.defineProperty(evt, 'defaultPrevented', {
+ get: () => true
+ });
+ }
+ }
+
+ if (nativeDispatch) {
+ element.dispatchEvent(evt);
+ }
+
+ if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {
+ jQueryEvent.preventDefault();
+ }
+
+ return evt;
+ }
+
+};
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.3.1): dom/selectorEngine.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+/**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+const findFn = Polyfill.find,
+ findOne = Polyfill.findOne;
+const NODE_TEXT = 3;
+const SelectorEngine = {
+ matches(element, selector) {
+ return element.matches(selector);
+ },
+
+ find(selector, element) {
+ if (element === void 0) {
+ element = document.documentElement;
+ }
+
+ if (typeof selector !== 'string') {
+ return null;
+ }
+
+ return findFn.call(element, selector);
+ },
+
+ findOne(selector, element) {
+ if (element === void 0) {
+ element = document.documentElement;
+ }
+
+ if (typeof selector !== 'string') {
+ return null;
+ }
+
+ return findOne.call(element, selector);
+ },
+
+ children(element, selector) {
+ if (typeof selector !== 'string') {
+ return null;
+ }
+
+ const children = makeArray(element.children);
+ return children.filter(child => this.matches(child, selector));
+ },
+
+ parents(element, selector) {
+ if (typeof selector !== 'string') {
+ return null;
+ }
+
+ const parents = [];
+ let 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(element, selector) {
+ if (typeof selector !== 'string') {
+ return null;
+ }
+
+ return element.closest(selector);
+ },
+
+ prev(element, selector) {
+ if (typeof selector !== 'string') {
+ return null;
+ }
+
+ const siblings = [];
+ let previous = element.previousSibling;
+
+ while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {
+ if (this.matches(previous, selector)) {
+ siblings.push(previous);
+ }
+
+ previous = previous.previousSibling;
+ }
+
+ return siblings;
+ }
+
+};
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.3.1): alert.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+/**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+const NAME = 'alert';
+const VERSION = '4.3.1';
+const DATA_KEY = 'bs.alert';
+const EVENT_KEY = `.${DATA_KEY}`;
+const DATA_API_KEY = '.data-api';
+const Selector = {
+ DISMISS: '[data-dismiss="alert"]'
+};
+const Event$1 = {
+ CLOSE: `close${EVENT_KEY}`,
+ CLOSED: `closed${EVENT_KEY}`,
+ CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`
+};
+const ClassName = {
+ ALERT: 'alert',
+ FADE: 'fade',
+ SHOW: 'show'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+};
+
+class Alert {
+ constructor(element) {
+ this._element = element;
+
+ if (this._element) {
+ Data.setData(element, DATA_KEY, this);
+ }
+ } // Getters
+
+
+ static get VERSION() {
+ return VERSION;
+ } // Public
+
+
+ close(element) {
+ let rootElement = this._element;
+
+ if (element) {
+ rootElement = this._getRootElement(element);
+ }
+
+ const customEvent = this._triggerCloseEvent(rootElement);
+
+ if (customEvent === null || customEvent.defaultPrevented) {
+ return;
+ }
+
+ this._removeElement(rootElement);
+ }
+
+ dispose() {
+ Data.removeData(this._element, DATA_KEY);
+ this._element = null;
+ } // Private
+
+
+ _getRootElement(element) {
+ const selector = getSelectorFromElement(element);
+ let parent = false;
+
+ if (selector) {
+ parent = SelectorEngine.findOne(selector);
+ }
+
+ if (!parent) {
+ parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`);
+ }
+
+ return parent;
+ }
+
+ _triggerCloseEvent(element) {
+ return EventHandler.trigger(element, Event$1.CLOSE);
+ }
+
+ _removeElement(element) {
+ element.classList.remove(ClassName.SHOW);
+
+ if (!element.classList.contains(ClassName.FADE)) {
+ this._destroyElement(element);
+
+ return;
+ }
+
+ const transitionDuration = getTransitionDurationFromElement(element);
+ EventHandler.one(element, TRANSITION_END, event => this._destroyElement(element, event));
+ emulateTransitionEnd(element, transitionDuration);
+ }
+
+ _destroyElement(element) {
+ if (element.parentNode) {
+ element.parentNode.removeChild(element);
+ }
+
+ EventHandler.trigger(element, Event$1.CLOSED);
+ } // Static
+
+
+ static _jQueryInterface(config) {
+ return this.each(function () {
+ let data = Data.getData(this, DATA_KEY);
+
+ if (!data) {
+ data = new Alert(this);
+ }
+
+ if (config === 'close') {
+ data[config](this);
+ }
+ });
+ }
+
+ static _handleDismiss(alertInstance) {
+ return function (event) {
+ if (event) {
+ event.preventDefault();
+ }
+
+ alertInstance.close(this);
+ };
+ }
+
+ static _getInstance(element) {
+ return Data.getData(element, DATA_KEY);
+ }
+
+}
+/**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+EventHandler.on(document, Event$1.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
+/**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .alert to jQuery only if jQuery is present
+ */
+
+if (typeof jQuery !== 'undefined') {
+ const JQUERY_NO_CONFLICT = jQuery.fn[NAME];
+ jQuery.fn[NAME] = Alert._jQueryInterface;
+ jQuery.fn[NAME].Constructor = Alert;
+
+ jQuery.fn[NAME].noConflict = () => {
+ jQuery.fn[NAME] = JQUERY_NO_CONFLICT;
+ return Alert._jQueryInterface;
+ };
+}
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.3.1): button.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+/**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+const NAME$1 = 'button';
+const VERSION$1 = '4.3.1';
+const DATA_KEY$1 = 'bs.button';
+const EVENT_KEY$1 = `.${DATA_KEY$1}`;
+const DATA_API_KEY$1 = '.data-api';
+const ClassName$1 = {
+ ACTIVE: 'active',
+ BUTTON: 'btn',
+ FOCUS: 'focus'
+};
+const Selector$1 = {
+ DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
+ DATA_TOGGLE: '[data-toggle="buttons"]',
+ INPUT: 'input:not([type="hidden"])',
+ ACTIVE: '.active',
+ BUTTON: '.btn'
+};
+const Event$2 = {
+ CLICK_DATA_API: `click${EVENT_KEY$1}${DATA_API_KEY$1}`,
+ FOCUS_DATA_API: `focus${EVENT_KEY$1}${DATA_API_KEY$1}`,
+ BLUR_DATA_API: `blur${EVENT_KEY$1}${DATA_API_KEY$1}`
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+};
+
+class Button {
+ constructor(element) {
+ this._element = element;
+ Data.setData(element, DATA_KEY$1, this);
+ } // Getters
+
+
+ static get VERSION() {
+ return VERSION$1;
+ } // Public
+
+
+ toggle() {
+ let triggerChangeEvent = true;
+ let addAriaPressed = true;
+ const rootElement = SelectorEngine.closest(this._element, Selector$1.DATA_TOGGLE);
+
+ if (rootElement) {
+ const input = SelectorEngine.findOne(Selector$1.INPUT, this._element);
+
+ if (input) {
+ if (input.type === 'radio') {
+ if (input.checked && this._element.classList.contains(ClassName$1.ACTIVE)) {
+ triggerChangeEvent = false;
+ } else {
+ const activeElement = SelectorEngine.findOne(Selector$1.ACTIVE, rootElement);
+
+ if (activeElement) {
+ activeElement.classList.remove(ClassName$1.ACTIVE);
+ }
+ }
+ }
+
+ if (triggerChangeEvent) {
+ if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
+ return;
+ }
+
+ input.checked = !this._element.classList.contains(ClassName$1.ACTIVE);
+ EventHandler.trigger(input, 'change');
+ }
+
+ input.focus();
+ addAriaPressed = false;
+ }
+ }
+
+ if (addAriaPressed) {
+ this._element.setAttribute('aria-pressed', !this._element.classList.contains(ClassName$1.ACTIVE));
+ }
+
+ if (triggerChangeEvent) {
+ this._element.classList.toggle(ClassName$1.ACTIVE);
+ }
+ }
+
+ dispose() {
+ Data.removeData(this._element, DATA_KEY$1);
+ this._element = null;
+ } // Static
+
+
+ static _jQueryInterface(config) {
+ return this.each(function () {
+ let data = Data.getData(this, DATA_KEY$1);
+
+ if (!data) {
+ data = new Button(this);
+ }
+
+ if (config === 'toggle') {
+ data[config]();
+ }
+ });
+ }
+
+ static _getInstance(element) {
+ return Data.getData(element, DATA_KEY$1);
+ }
+
+}
+/**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+EventHandler.on(document, Event$2.CLICK_DATA_API, Selector$1.DATA_TOGGLE_CARROT, event => {
+ event.preventDefault();
+ let button = event.target;
+
+ if (!button.classList.contains(ClassName$1.BUTTON)) {
+ button = SelectorEngine.closest(button, Selector$1.BUTTON);
+ }
+
+ let data = Data.getData(button, DATA_KEY$1);
+
+ if (!data) {
+ data = new Button(button);
+ Data.setData(button, DATA_KEY$1, data);
+ }
+
+ data.toggle();
+});
+EventHandler.on(document, Event$2.FOCUS_DATA_API, Selector$1.DATA_TOGGLE_CARROT, event => {
+ const button = SelectorEngine.closest(event.target, Selector$1.BUTTON);
+ button.classList.add(ClassName$1.FOCUS);
+});
+EventHandler.on(document, Event$2.BLUR_DATA_API, Selector$1.DATA_TOGGLE_CARROT, event => {
+ const button = SelectorEngine.closest(event.target, Selector$1.BUTTON);
+ button.classList.remove(ClassName$1.FOCUS);
+});
+/**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .button to jQuery only if jQuery is present
+ */
+
+if (typeof jQuery !== 'undefined') {
+ const JQUERY_NO_CONFLICT = jQuery.fn[NAME$1];
+ jQuery.fn[NAME$1] = Button._jQueryInterface;
+ jQuery.fn[NAME$1].Constructor = Button;
+
+ jQuery.fn[NAME$1].noConflict = () => {
+ jQuery.fn[NAME$1] = JQUERY_NO_CONFLICT;
+ return Button._jQueryInterface;
+ };
+}
+
+function _extends() {
+ _extends = Object.assign || function (target) {
+ for (var i = 1; i < arguments.length; i++) {
+ var source = arguments[i];
+
+ for (var key in source) {
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
+ target[key] = source[key];
+ }
+ }
+ }
+
+ return target;
+ };
+
+ return _extends.apply(this, arguments);
+}
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.3.1): dom/manipulator.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+function normalizeData(val) {
+ if (val === 'true') {
+ return true;
+ }
+
+ if (val === 'false') {
+ return false;
+ }
+
+ if (val === Number(val).toString()) {
+ return Number(val);
+ }
+
+ if (val === '' || val === 'null') {
+ return null;
+ }
+
+ return val;
+}
+
+function normalizeDataKey(key) {
+ return key.replace(/[A-Z]/g, chr => chr.toLowerCase());
+}
+
+const Manipulator = {
+ setDataAttribute(element, key, value) {
+ element.setAttribute(`data-${normalizeDataKey(key)}`, value);
+ },
+
+ removeDataAttribute(element, key) {
+ element.removeAttribute(`data-${normalizeDataKey(key)}`);
+ },
+
+ getDataAttributes(element) {
+ if (!element) {
+ return {};
+ }
+
+ const attributes = _extends({}, element.dataset);
+
+ Object.keys(attributes).forEach(key => {
+ attributes[key] = normalizeData(attributes[key]);
+ });
+ return attributes;
+ },
+
+ getDataAttribute(element, key) {
+ return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`));
+ },
+
+ offset(element) {
+ const rect = element.getBoundingClientRect();
+ return {
+ top: rect.top + document.body.scrollTop,
+ left: rect.left + document.body.scrollLeft
+ };
+ },
+
+ position(element) {
+ return {
+ top: element.offsetTop,
+ left: element.offsetLeft
+ };
+ },
+
+ toggleClass(element, className) {
+ if (!element) {
+ return;
+ }
+
+ if (element.classList.contains(className)) {
+ element.classList.remove(className);
+ } else {
+ element.classList.add(className);
+ }
+ }
+
+};
+
+/**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+const NAME$2 = 'carousel';
+const VERSION$2 = '4.3.1';
+const DATA_KEY$2 = 'bs.carousel';
+const EVENT_KEY$2 = `.${DATA_KEY$2}`;
+const DATA_API_KEY$2 = '.data-api';
+const ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
+
+const ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
+
+const TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
+
+const SWIPE_THRESHOLD = 40;
+const Default = {
+ interval: 5000,
+ keyboard: true,
+ slide: false,
+ pause: 'hover',
+ wrap: true,
+ touch: true
+};
+const DefaultType = {
+ interval: '(number|boolean)',
+ keyboard: 'boolean',
+ slide: '(boolean|string)',
+ pause: '(string|boolean)',
+ wrap: 'boolean',
+ touch: 'boolean'
+};
+const Direction = {
+ NEXT: 'next',
+ PREV: 'prev',
+ LEFT: 'left',
+ RIGHT: 'right'
+};
+const Event$3 = {
+ SLIDE: `slide${EVENT_KEY$2}`,
+ SLID: `slid${EVENT_KEY$2}`,
+ KEYDOWN: `keydown${EVENT_KEY$2}`,
+ MOUSEENTER: `mouseenter${EVENT_KEY$2}`,
+ MOUSELEAVE: `mouseleave${EVENT_KEY$2}`,
+ TOUCHSTART: `touchstart${EVENT_KEY$2}`,
+ TOUCHMOVE: `touchmove${EVENT_KEY$2}`,
+ TOUCHEND: `touchend${EVENT_KEY$2}`,
+ POINTERDOWN: `pointerdown${EVENT_KEY$2}`,
+ POINTERUP: `pointerup${EVENT_KEY$2}`,
+ DRAG_START: `dragstart${EVENT_KEY$2}`,
+ LOAD_DATA_API: `load${EVENT_KEY$2}${DATA_API_KEY$2}`,
+ CLICK_DATA_API: `click${EVENT_KEY$2}${DATA_API_KEY$2}`
+};
+const ClassName$2 = {
+ CAROUSEL: 'carousel',
+ ACTIVE: 'active',
+ SLIDE: 'slide',
+ RIGHT: 'carousel-item-right',
+ LEFT: 'carousel-item-left',
+ NEXT: 'carousel-item-next',
+ PREV: 'carousel-item-prev',
+ ITEM: 'carousel-item',
+ POINTER_EVENT: 'pointer-event'
+};
+const Selector$2 = {
+ ACTIVE: '.active',
+ ACTIVE_ITEM: '.active.carousel-item',
+ ITEM: '.carousel-item',
+ ITEM_IMG: '.carousel-item img',
+ NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
+ INDICATORS: '.carousel-indicators',
+ DATA_SLIDE: '[data-slide], [data-slide-to]',
+ DATA_RIDE: '[data-ride="carousel"]'
+};
+const PointerType = {
+ TOUCH: 'touch',
+ PEN: 'pen'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+};
+
+class Carousel {
+ constructor(element, config) {
+ this._items = null;
+ this._interval = null;
+ this._activeElement = null;
+ this._isPaused = false;
+ this._isSliding = false;
+ this.touchTimeout = null;
+ this.touchStartX = 0;
+ this.touchDeltaX = 0;
+ this._config = this._getConfig(config);
+ this._element = element;
+ this._indicatorsElement = SelectorEngine.findOne(Selector$2.INDICATORS, this._element);
+ this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
+ this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);
+
+ this._addEventListeners();
+
+ Data.setData(element, DATA_KEY$2, this);
+ } // Getters
+
+
+ static get VERSION() {
+ return VERSION$2;
+ }
+
+ static get Default() {
+ return Default;
+ } // Public
+
+
+ next() {
+ if (!this._isSliding) {
+ this._slide(Direction.NEXT);
+ }
+ }
+
+ nextWhenVisible() {
+ // Don't call next when the page isn't visible
+ // or the carousel or its parent isn't visible
+ if (!document.hidden && isVisible(this._element)) {
+ this.next();
+ }
+ }
+
+ prev() {
+ if (!this._isSliding) {
+ this._slide(Direction.PREV);
+ }
+ }
+
+ pause(event) {
+ if (!event) {
+ this._isPaused = true;
+ }
+
+ if (SelectorEngine.findOne(Selector$2.NEXT_PREV, this._element)) {
+ triggerTransitionEnd(this._element);
+ this.cycle(true);
+ }
+
+ clearInterval(this._interval);
+ this._interval = null;
+ }
+
+ cycle(event) {
+ if (!event) {
+ this._isPaused = false;
+ }
+
+ if (this._interval) {
+ clearInterval(this._interval);
+ this._interval = null;
+ }
+
+ if (this._config && this._config.interval && !this._isPaused) {
+ this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);
+ }
+ }
+
+ to(index) {
+ this._activeElement = SelectorEngine.findOne(Selector$2.ACTIVE_ITEM, this._element);
+
+ const activeIndex = this._getItemIndex(this._activeElement);
+
+ if (index > this._items.length - 1 || index < 0) {
+ return;
+ }
+
+ if (this._isSliding) {
+ EventHandler.one(this._element, Event$3.SLID, () => this.to(index));
+ return;
+ }
+
+ if (activeIndex === index) {
+ this.pause();
+ this.cycle();
+ return;
+ }
+
+ const direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
+
+ this._slide(direction, this._items[index]);
+ }
+
+ dispose() {
+ 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;
+ } // Private
+
+
+ _getConfig(config) {
+ config = _extends({}, Default, config);
+ typeCheckConfig(NAME$2, config, DefaultType);
+ return config;
+ }
+
+ _handleSwipe() {
+ const absDeltax = Math.abs(this.touchDeltaX);
+
+ if (absDeltax <= SWIPE_THRESHOLD) {
+ return;
+ }
+
+ const direction = absDeltax / this.touchDeltaX; // swipe left
+
+ if (direction > 0) {
+ this.prev();
+ } // swipe right
+
+
+ if (direction < 0) {
+ this.next();
+ }
+ }
+
+ _addEventListeners() {
+ if (this._config.keyboard) {
+ EventHandler.on(this._element, Event$3.KEYDOWN, event => this._keydown(event));
+ }
+
+ if (this._config.pause === 'hover') {
+ EventHandler.on(this._element, Event$3.MOUSEENTER, event => this.pause(event));
+ EventHandler.on(this._element, Event$3.MOUSELEAVE, event => this.cycle(event));
+ }
+
+ if (this._config.touch) {
+ this._addTouchEventListeners();
+ }
+ }
+
+ _addTouchEventListeners() {
+ if (!this._touchSupported) {
+ return;
+ }
+
+ const start = event => {
+ if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
+ this.touchStartX = event.clientX;
+ } else if (!this._pointerEvent) {
+ this.touchStartX = event.touches[0].clientX;
+ }
+ };
+
+ const move = event => {
+ // ensure swiping with one touch and not pinching
+ if (event.touches && event.touches.length > 1) {
+ this.touchDeltaX = 0;
+ } else {
+ this.touchDeltaX = event.touches[0].clientX - this.touchStartX;
+ }
+ };
+
+ const end = event => {
+ if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {
+ this.touchDeltaX = event.clientX - this.touchStartX;
+ }
+
+ this._handleSwipe();
+
+ if (this._config.pause === 'hover') {
+ // If it's a touch-enabled device, mouseenter/leave are fired as
+ // part of the mouse compatibility events on first tap - the carousel
+ // would stop cycling until user tapped out of it;
+ // here, we listen for touchend, explicitly pause the carousel
+ // (as if it's the second time we tap on it, mouseenter compat event
+ // is NOT fired) and after a timeout (to allow for mouse compatibility
+ // events to fire) we explicitly restart cycling
+ this.pause();
+
+ if (this.touchTimeout) {
+ clearTimeout(this.touchTimeout);
+ }
+
+ this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval);
+ }
+ };
+
+ makeArray(SelectorEngine.find(Selector$2.ITEM_IMG, this._element)).forEach(itemImg => {
+ EventHandler.on(itemImg, Event$3.DRAG_START, e => e.preventDefault());
+ });
+
+ if (this._pointerEvent) {
+ EventHandler.on(this._element, Event$3.POINTERDOWN, event => start(event));
+ EventHandler.on(this._element, Event$3.POINTERUP, event => end(event));
+
+ this._element.classList.add(ClassName$2.POINTER_EVENT);
+ } else {
+ EventHandler.on(this._element, Event$3.TOUCHSTART, event => start(event));
+ EventHandler.on(this._element, Event$3.TOUCHMOVE, event => move(event));
+ EventHandler.on(this._element, Event$3.TOUCHEND, event => end(event));
+ }
+ }
+
+ _keydown(event) {
+ if (/input|textarea/i.test(event.target.tagName)) {
+ return;
+ }
+
+ switch (event.which) {
+ case ARROW_LEFT_KEYCODE:
+ event.preventDefault();
+ this.prev();
+ break;
+
+ case ARROW_RIGHT_KEYCODE:
+ event.preventDefault();
+ this.next();
+ break;
+
+ default:
+ }
+ }
+
+ _getItemIndex(element) {
+ this._items = element && element.parentNode ? makeArray(SelectorEngine.find(Selector$2.ITEM, element.parentNode)) : [];
+ return this._items.indexOf(element);
+ }
+
+ _getItemByDirection(direction, activeElement) {
+ const isNextDirection = direction === Direction.NEXT;
+ const isPrevDirection = direction === Direction.PREV;
+
+ const activeIndex = this._getItemIndex(activeElement);
+
+ const lastItemIndex = this._items.length - 1;
+ const isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
+
+ if (isGoingToWrap && !this._config.wrap) {
+ return activeElement;
+ }
+
+ const delta = direction === Direction.PREV ? -1 : 1;
+ const itemIndex = (activeIndex + delta) % this._items.length;
+ return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];
+ }
+
+ _triggerSlideEvent(relatedTarget, eventDirectionName) {
+ const targetIndex = this._getItemIndex(relatedTarget);
+
+ const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector$2.ACTIVE_ITEM, this._element));
+
+ return EventHandler.trigger(this._element, Event$3.SLIDE, {
+ relatedTarget,
+ direction: eventDirectionName,
+ from: fromIndex,
+ to: targetIndex
+ });
+ }
+
+ _setActiveIndicatorElement(element) {
+ if (this._indicatorsElement) {
+ const indicators = SelectorEngine.find(Selector$2.ACTIVE, this._indicatorsElement);
+
+ for (let i = 0; i < indicators.length; i++) {
+ indicators[i].classList.remove(ClassName$2.ACTIVE);
+ }
+
+ const nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
+
+ if (nextIndicator) {
+ nextIndicator.classList.add(ClassName$2.ACTIVE);
+ }
+ }
+ }
+
+ _slide(direction, element) {
+ const activeElement = SelectorEngine.findOne(Selector$2.ACTIVE_ITEM, this._element);
+
+ const activeElementIndex = this._getItemIndex(activeElement);
+
+ const nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
+
+ const nextElementIndex = this._getItemIndex(nextElement);
+
+ const isCycling = Boolean(this._interval);
+ let directionalClassName;
+ let orderClassName;
+ let eventDirectionName;
+
+ if (direction === Direction.NEXT) {
+ directionalClassName = ClassName$2.LEFT;
+ orderClassName = ClassName$2.NEXT;
+ eventDirectionName = Direction.LEFT;
+ } else {
+ directionalClassName = ClassName$2.RIGHT;
+ orderClassName = ClassName$2.PREV;
+ eventDirectionName = Direction.RIGHT;
+ }
+
+ if (nextElement && nextElement.classList.contains(ClassName$2.ACTIVE)) {
+ this._isSliding = false;
+ return;
+ }
+
+ const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
+
+ if (slideEvent.defaultPrevented) {
+ return;
+ }
+
+ if (!activeElement || !nextElement) {
+ // Some weirdness is happening, so we bail
+ return;
+ }
+
+ this._isSliding = true;
+
+ if (isCycling) {
+ this.pause();
+ }
+
+ this._setActiveIndicatorElement(nextElement);
+
+ if (this._element.classList.contains(ClassName$2.SLIDE)) {
+ nextElement.classList.add(orderClassName);
+ reflow(nextElement);
+ activeElement.classList.add(directionalClassName);
+ nextElement.classList.add(directionalClassName);
+ const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10);
+
+ if (nextElementInterval) {
+ this._config.defaultInterval = this._config.defaultInterval || this._config.interval;
+ this._config.interval = nextElementInterval;
+ } else {
+ this._config.interval = this._config.defaultInterval || this._config.interval;
+ }
+
+ const transitionDuration = getTransitionDurationFromElement(activeElement);
+ EventHandler.one(activeElement, TRANSITION_END, () => {
+ nextElement.classList.remove(directionalClassName);
+ nextElement.classList.remove(orderClassName);
+ nextElement.classList.add(ClassName$2.ACTIVE);
+ activeElement.classList.remove(ClassName$2.ACTIVE);
+ activeElement.classList.remove(orderClassName);
+ activeElement.classList.remove(directionalClassName);
+ this._isSliding = false;
+ setTimeout(() => {
+ EventHandler.trigger(this._element, Event$3.SLID, {
+ relatedTarget: nextElement,
+ direction: eventDirectionName,
+ from: activeElementIndex,
+ to: nextElementIndex
+ });
+ }, 0);
+ });
+ emulateTransitionEnd(activeElement, transitionDuration);
+ } else {
+ activeElement.classList.remove(ClassName$2.ACTIVE);
+ nextElement.classList.add(ClassName$2.ACTIVE);
+ this._isSliding = false;
+ EventHandler.trigger(this._element, Event$3.SLID, {
+ relatedTarget: nextElement,
+ direction: eventDirectionName,
+ from: activeElementIndex,
+ to: nextElementIndex
+ });
+ }
+
+ if (isCycling) {
+ this.cycle();
+ }
+ } // Static
+
+
+ static _carouselInterface(element, config) {
+ let data = Data.getData(element, DATA_KEY$2);
+
+ let _config = _extends({}, Default, Manipulator.getDataAttributes(element));
+
+ if (typeof config === 'object') {
+ _config = _extends({}, _config, config);
+ }
+
+ const action = typeof config === 'string' ? config : _config.slide;
+
+ if (!data) {
+ data = new Carousel(element, _config);
+ }
+
+ if (typeof config === 'number') {
+ data.to(config);
+ } else if (typeof action === 'string') {
+ if (typeof data[action] === 'undefined') {
+ throw new TypeError(`No method named "${action}"`);
+ }
+
+ data[action]();
+ } else if (_config.interval && _config.ride) {
+ data.pause();
+ data.cycle();
+ }
+ }
+
+ static _jQueryInterface(config) {
+ return this.each(function () {
+ Carousel._carouselInterface(this, config);
+ });
+ }
+
+ static _dataApiClickHandler(event) {
+ const selector = getSelectorFromElement(this);
+
+ if (!selector) {
+ return;
+ }
+
+ const target = SelectorEngine.findOne(selector);
+
+ if (!target || !target.classList.contains(ClassName$2.CAROUSEL)) {
+ return;
+ }
+
+ const config = _extends({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this));
+
+ const slideIndex = this.getAttribute('data-slide-to');
+
+ if (slideIndex) {
+ config.interval = false;
+ }
+
+ Carousel._carouselInterface(target, config);
+
+ if (slideIndex) {
+ Data.getData(target, DATA_KEY$2).to(slideIndex);
+ }
+
+ event.preventDefault();
+ }
+
+ static _getInstance(element) {
+ return Data.getData(element, DATA_KEY$2);
+ }
+
+}
+/**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+EventHandler.on(document, Event$3.CLICK_DATA_API, Selector$2.DATA_SLIDE, Carousel._dataApiClickHandler);
+EventHandler.on(window, Event$3.LOAD_DATA_API, () => {
+ const carousels = makeArray(SelectorEngine.find(Selector$2.DATA_RIDE));
+
+ for (let i = 0, len = carousels.length; i < len; i++) {
+ Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY$2));
+ }
+});
+/**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .carousel to jQuery only if jQuery is present
+ */
+
+if (typeof jQuery !== 'undefined') {
+ const JQUERY_NO_CONFLICT = jQuery.fn[NAME$2];
+ jQuery.fn[NAME$2] = Carousel._jQueryInterface;
+ jQuery.fn[NAME$2].Constructor = Carousel;
+
+ jQuery.fn[NAME$2].noConflict = () => {
+ jQuery.fn[NAME$2] = JQUERY_NO_CONFLICT;
+ return Carousel._jQueryInterface;
+ };
+}
+
+/**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+const NAME$3 = 'collapse';
+const VERSION$3 = '4.3.1';
+const DATA_KEY$3 = 'bs.collapse';
+const EVENT_KEY$3 = `.${DATA_KEY$3}`;
+const DATA_API_KEY$3 = '.data-api';
+const Default$1 = {
+ toggle: true,
+ parent: ''
+};
+const DefaultType$1 = {
+ toggle: 'boolean',
+ parent: '(string|element)'
+};
+const Event$4 = {
+ SHOW: `show${EVENT_KEY$3}`,
+ SHOWN: `shown${EVENT_KEY$3}`,
+ HIDE: `hide${EVENT_KEY$3}`,
+ HIDDEN: `hidden${EVENT_KEY$3}`,
+ CLICK_DATA_API: `click${EVENT_KEY$3}${DATA_API_KEY$3}`
+};
+const ClassName$3 = {
+ SHOW: 'show',
+ COLLAPSE: 'collapse',
+ COLLAPSING: 'collapsing',
+ COLLAPSED: 'collapsed'
+};
+const Dimension = {
+ WIDTH: 'width',
+ HEIGHT: 'height'
+};
+const Selector$3 = {
+ ACTIVES: '.show, .collapsing',
+ DATA_TOGGLE: '[data-toggle="collapse"]'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+};
+
+class Collapse {
+ constructor(element, config) {
+ this._isTransitioning = false;
+ this._element = element;
+ this._config = this._getConfig(config);
+ this._triggerArray = makeArray(SelectorEngine.find(`[data-toggle="collapse"][href="#${element.id}"],` + `[data-toggle="collapse"][data-target="#${element.id}"]`));
+ const toggleList = makeArray(SelectorEngine.find(Selector$3.DATA_TOGGLE));
+
+ for (let i = 0, len = toggleList.length; i < len; i++) {
+ const elem = toggleList[i];
+ const selector = getSelectorFromElement(elem);
+ const filterElement = makeArray(SelectorEngine.find(selector)).filter(foundElem => foundElem === element);
+
+ if (selector !== null && filterElement.length) {
+ this._selector = selector;
+
+ this._triggerArray.push(elem);
+ }
+ }
+
+ this._parent = this._config.parent ? this._getParent() : null;
+
+ if (!this._config.parent) {
+ this._addAriaAndCollapsedClass(this._element, this._triggerArray);
+ }
+
+ if (this._config.toggle) {
+ this.toggle();
+ }
+
+ Data.setData(element, DATA_KEY$3, this);
+ } // Getters
+
+
+ static get VERSION() {
+ return VERSION$3;
+ }
+
+ static get Default() {
+ return Default$1;
+ } // Public
+
+
+ toggle() {
+ if (this._element.classList.contains(ClassName$3.SHOW)) {
+ this.hide();
+ } else {
+ this.show();
+ }
+ }
+
+ show() {
+ if (this._isTransitioning || this._element.classList.contains(ClassName$3.SHOW)) {
+ return;
+ }
+
+ let actives;
+ let activesData;
+
+ if (this._parent) {
+ actives = makeArray(SelectorEngine.find(Selector$3.ACTIVES, this._parent)).filter(elem => {
+ if (typeof this._config.parent === 'string') {
+ return elem.getAttribute('data-parent') === this._config.parent;
+ }
+
+ return elem.classList.contains(ClassName$3.COLLAPSE);
+ });
+
+ if (actives.length === 0) {
+ actives = null;
+ }
+ }
+
+ const container = SelectorEngine.findOne(this._selector);
+
+ if (actives) {
+ const tempActiveData = actives.filter(elem => container !== elem);
+ activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY$3) : null;
+
+ if (activesData && activesData._isTransitioning) {
+ return;
+ }
+ }
+
+ const startEvent = EventHandler.trigger(this._element, Event$4.SHOW);
+
+ if (startEvent.defaultPrevented) {
+ return;
+ }
+
+ if (actives) {
+ actives.forEach(elemActive => {
+ if (container !== elemActive) {
+ Collapse._collapseInterface(elemActive, 'hide');
+ }
+
+ if (!activesData) {
+ Data.setData(elemActive, DATA_KEY$3, null);
+ }
+ });
+ }
+
+ const dimension = this._getDimension();
+
+ this._element.classList.remove(ClassName$3.COLLAPSE);
+
+ this._element.classList.add(ClassName$3.COLLAPSING);
+
+ this._element.style[dimension] = 0;
+
+ if (this._triggerArray.length) {
+ this._triggerArray.forEach(element => {
+ element.classList.remove(ClassName$3.COLLAPSED);
+ element.setAttribute('aria-expanded', true);
+ });
+ }
+
+ this.setTransitioning(true);
+
+ const complete = () => {
+ this._element.classList.remove(ClassName$3.COLLAPSING);
+
+ this._element.classList.add(ClassName$3.COLLAPSE);
+
+ this._element.classList.add(ClassName$3.SHOW);
+
+ this._element.style[dimension] = '';
+ this.setTransitioning(false);
+ EventHandler.trigger(this._element, Event$4.SHOWN);
+ };
+
+ const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
+ const scrollSize = `scroll${capitalizedDimension}`;
+ const transitionDuration = getTransitionDurationFromElement(this._element);
+ EventHandler.one(this._element, TRANSITION_END, complete);
+ emulateTransitionEnd(this._element, transitionDuration);
+ this._element.style[dimension] = `${this._element[scrollSize]}px`;
+ }
+
+ hide() {
+ if (this._isTransitioning || !this._element.classList.contains(ClassName$3.SHOW)) {
+ return;
+ }
+
+ const startEvent = EventHandler.trigger(this._element, Event$4.HIDE);
+
+ if (startEvent.defaultPrevented) {
+ return;
+ }
+
+ const dimension = this._getDimension();
+
+ this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`;
+ reflow(this._element);
+
+ this._element.classList.add(ClassName$3.COLLAPSING);
+
+ this._element.classList.remove(ClassName$3.COLLAPSE);
+
+ this._element.classList.remove(ClassName$3.SHOW);
+
+ const triggerArrayLength = this._triggerArray.length;
+
+ if (triggerArrayLength > 0) {
+ for (let i = 0; i < triggerArrayLength; i++) {
+ const trigger = this._triggerArray[i];
+ const selector = getSelectorFromElement(trigger);
+
+ if (selector !== null) {
+ const elem = SelectorEngine.findOne(selector);
+
+ if (!elem.classList.contains(ClassName$3.SHOW)) {
+ trigger.classList.add(ClassName$3.COLLAPSED);
+ trigger.setAttribute('aria-expanded', false);
+ }
+ }
+ }
+ }
+
+ this.setTransitioning(true);
+
+ const complete = () => {
+ this.setTransitioning(false);
+
+ this._element.classList.remove(ClassName$3.COLLAPSING);
+
+ this._element.classList.add(ClassName$3.COLLAPSE);
+
+ EventHandler.trigger(this._element, Event$4.HIDDEN);
+ };
+
+ this._element.style[dimension] = '';
+ const transitionDuration = getTransitionDurationFromElement(this._element);
+ EventHandler.one(this._element, TRANSITION_END, complete);
+ emulateTransitionEnd(this._element, transitionDuration);
+ }
+
+ setTransitioning(isTransitioning) {
+ this._isTransitioning = isTransitioning;
+ }
+
+ dispose() {
+ Data.removeData(this._element, DATA_KEY$3);
+ this._config = null;
+ this._parent = null;
+ this._element = null;
+ this._triggerArray = null;
+ this._isTransitioning = null;
+ } // Private
+
+
+ _getConfig(config) {
+ config = _extends({}, Default$1, config);
+ config.toggle = Boolean(config.toggle); // Coerce string values
+
+ typeCheckConfig(NAME$3, config, DefaultType$1);
+ return config;
+ }
+
+ _getDimension() {
+ const hasWidth = this._element.classList.contains(Dimension.WIDTH);
+
+ return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT;
+ }
+
+ _getParent() {
+ let parent = this._config.parent;
+
+ if (isElement(parent)) {
+ // it's a jQuery object
+ if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {
+ parent = parent[0];
+ }
+ } else {
+ parent = SelectorEngine.findOne(parent);
+ }
+
+ const selector = `[data-toggle="collapse"][data-parent="${parent}"]`;
+ makeArray(SelectorEngine.find(selector, parent)).forEach(element => {
+ this._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
+ });
+ return parent;
+ }
+
+ _addAriaAndCollapsedClass(element, triggerArray) {
+ if (element) {
+ const isOpen = element.classList.contains(ClassName$3.SHOW);
+
+ if (triggerArray.length) {
+ triggerArray.forEach(elem => {
+ if (isOpen) {
+ elem.classList.remove(ClassName$3.COLLAPSED);
+ } else {
+ elem.classList.add(ClassName$3.COLLAPSED);
+ }
+
+ elem.setAttribute('aria-expanded', isOpen);
+ });
+ }
+ }
+ } // Static
+
+
+ static _getTargetFromElement(element) {
+ const selector = getSelectorFromElement(element);
+ return selector ? SelectorEngine.findOne(selector) : null;
+ }
+
+ static _collapseInterface(element, config) {
+ let data = Data.getData(element, DATA_KEY$3);
+
+ const _config = _extends({}, Default$1, Manipulator.getDataAttributes(element), typeof config === 'object' && config ? config : {});
+
+ if (!data && _config.toggle && /show|hide/.test(config)) {
+ _config.toggle = false;
+ }
+
+ if (!data) {
+ data = new Collapse(element, _config);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError(`No method named "${config}"`);
+ }
+
+ data[config]();
+ }
+ }
+
+ static _jQueryInterface(config) {
+ return this.each(function () {
+ Collapse._collapseInterface(this, config);
+ });
+ }
+
+ static _getInstance(element) {
+ return Data.getData(element, DATA_KEY$3);
+ }
+
+}
+/**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+EventHandler.on(document, Event$4.CLICK_DATA_API, Selector$3.DATA_TOGGLE, function (event) {
+ // preventDefault only for <a> elements (which change the URL) not inside the collapsible element
+ if (event.target.tagName === 'A') {
+ event.preventDefault();
+ }
+
+ const triggerData = Manipulator.getDataAttributes(this);
+ const selector = getSelectorFromElement(this);
+ const selectorElements = makeArray(SelectorEngine.find(selector));
+ selectorElements.forEach(element => {
+ const data = Data.getData(element, DATA_KEY$3);
+ let config;
+
+ if (data) {
+ // update parent attribute
+ if (data._parent === null && typeof triggerData.parent === 'string') {
+ data._config.parent = triggerData.parent;
+ data._parent = data._getParent();
+ }
+
+ config = 'toggle';
+ } else {
+ config = triggerData;
+ }
+
+ Collapse._collapseInterface(element, config);
+ });
+});
+/**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .collapse to jQuery only if jQuery is present
+ */
+
+if (typeof jQuery !== 'undefined') {
+ const JQUERY_NO_CONFLICT = jQuery.fn[NAME$3];
+ jQuery.fn[NAME$3] = Collapse._jQueryInterface;
+ jQuery.fn[NAME$3].Constructor = Collapse;
+
+ jQuery.fn[NAME$3].noConflict = () => {
+ jQuery.fn[NAME$3] = JQUERY_NO_CONFLICT;
+ return Collapse._jQueryInterface;
+ };
+}
+
+/**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+const NAME$4 = 'dropdown';
+const VERSION$4 = '4.3.1';
+const DATA_KEY$4 = 'bs.dropdown';
+const EVENT_KEY$4 = `.${DATA_KEY$4}`;
+const DATA_API_KEY$4 = '.data-api';
+const ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
+
+const SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
+
+const TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
+
+const ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
+
+const ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
+
+const RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
+
+const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`);
+const Event$5 = {
+ HIDE: `hide${EVENT_KEY$4}`,
+ HIDDEN: `hidden${EVENT_KEY$4}`,
+ SHOW: `show${EVENT_KEY$4}`,
+ SHOWN: `shown${EVENT_KEY$4}`,
+ CLICK: `click${EVENT_KEY$4}`,
+ CLICK_DATA_API: `click${EVENT_KEY$4}${DATA_API_KEY$4}`,
+ KEYDOWN_DATA_API: `keydown${EVENT_KEY$4}${DATA_API_KEY$4}`,
+ KEYUP_DATA_API: `keyup${EVENT_KEY$4}${DATA_API_KEY$4}`
+};
+const ClassName$4 = {
+ DISABLED: 'disabled',
+ SHOW: 'show',
+ DROPUP: 'dropup',
+ DROPRIGHT: 'dropright',
+ DROPLEFT: 'dropleft',
+ MENURIGHT: 'dropdown-menu-right',
+ POSITION_STATIC: 'position-static'
+};
+const Selector$4 = {
+ DATA_TOGGLE: '[data-toggle="dropdown"]',
+ FORM_CHILD: '.dropdown form',
+ MENU: '.dropdown-menu',
+ NAVBAR_NAV: '.navbar-nav',
+ VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'
+};
+const AttachmentMap = {
+ TOP: 'top-start',
+ TOPEND: 'top-end',
+ BOTTOM: 'bottom-start',
+ BOTTOMEND: 'bottom-end',
+ RIGHT: 'right-start',
+ RIGHTEND: 'right-end',
+ LEFT: 'left-start',
+ LEFTEND: 'left-end'
+};
+const Default$2 = {
+ offset: 0,
+ flip: true,
+ boundary: 'scrollParent',
+ reference: 'toggle',
+ display: 'dynamic'
+};
+const DefaultType$2 = {
+ offset: '(number|string|function)',
+ flip: 'boolean',
+ boundary: '(string|element)',
+ reference: '(string|element)',
+ display: 'string'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+};
+
+class Dropdown {
+ constructor(element, config) {
+ this._element = element;
+ this._popper = null;
+ this._config = this._getConfig(config);
+ this._menu = this._getMenuElement();
+ this._inNavbar = this._detectNavbar();
+
+ this._addEventListeners();
+
+ Data.setData(element, DATA_KEY$4, this);
+ } // Getters
+
+
+ static get VERSION() {
+ return VERSION$4;
+ }
+
+ static get Default() {
+ return Default$2;
+ }
+
+ static get DefaultType() {
+ return DefaultType$2;
+ } // Public
+
+
+ toggle() {
+ if (this._element.disabled || this._element.classList.contains(ClassName$4.DISABLED)) {
+ return;
+ }
+
+ const parent = Dropdown._getParentFromElement(this._element);
+
+ const isActive = this._menu.classList.contains(ClassName$4.SHOW);
+
+ Dropdown._clearMenus();
+
+ if (isActive) {
+ return;
+ }
+
+ const relatedTarget = {
+ relatedTarget: this._element
+ };
+ const showEvent = EventHandler.trigger(parent, Event$5.SHOW, relatedTarget);
+
+ if (showEvent.defaultPrevented) {
+ return;
+ } // Disable totally Popper.js for Dropdown in Navbar
+
+
+ if (!this._inNavbar) {
+ /**
+ * Check for Popper dependency
+ * Popper - https://popper.js.org
+ */
+ if (typeof Popper === 'undefined') {
+ throw new TypeError('Bootstrap\'s dropdowns require Popper.js (https://popper.js.org)');
+ }
+
+ let referenceElement = this._element;
+
+ if (this._config.reference === 'parent') {
+ referenceElement = parent;
+ } else if (isElement(this._config.reference)) {
+ referenceElement = this._config.reference; // Check if it's jQuery element
+
+ if (typeof this._config.reference.jquery !== 'undefined') {
+ referenceElement = this._config.reference[0];
+ }
+ } // If boundary is not `scrollParent`, then set position to `static`
+ // to allow the menu to "escape" the scroll parent's boundaries
+ // https://github.com/twbs/bootstrap/issues/24251
+
+
+ if (this._config.boundary !== 'scrollParent') {
+ parent.classList.add(ClassName$4.POSITION_STATIC);
+ }
+
+ this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig());
+ } // If this is a touch-enabled device we add extra
+ // empty mouseover listeners to the body's immediate children;
+ // only needed because of broken event delegation on iOS
+ // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
+
+
+ if ('ontouchstart' in document.documentElement && !makeArray(SelectorEngine.closest(parent, Selector$4.NAVBAR_NAV)).length) {
+ makeArray(document.body.children).forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()));
+ }
+
+ this._element.focus();
+
+ this._element.setAttribute('aria-expanded', true);
+
+ Manipulator.toggleClass(this._menu, ClassName$4.SHOW);
+ Manipulator.toggleClass(parent, ClassName$4.SHOW);
+ EventHandler.trigger(parent, Event$5.SHOWN, relatedTarget);
+ }
+
+ show() {
+ if (this._element.disabled || this._element.classList.contains(ClassName$4.DISABLED) || this._menu.classList.contains(ClassName$4.SHOW)) {
+ return;
+ }
+
+ const parent = Dropdown._getParentFromElement(this._element);
+
+ const relatedTarget = {
+ relatedTarget: this._element
+ };
+ const showEvent = EventHandler.trigger(parent, Event$5.SHOW, relatedTarget);
+
+ if (showEvent.defaultPrevented) {
+ return;
+ }
+
+ Manipulator.toggleClass(this._menu, ClassName$4.SHOW);
+ Manipulator.toggleClass(parent, ClassName$4.SHOW);
+ EventHandler.trigger(parent, Event$5.SHOWN, relatedTarget);
+ }
+
+ hide() {
+ if (this._element.disabled || this._element.classList.contains(ClassName$4.DISABLED) || !this._menu.classList.contains(ClassName$4.SHOW)) {
+ return;
+ }
+
+ const parent = Dropdown._getParentFromElement(this._element);
+
+ const relatedTarget = {
+ relatedTarget: this._element
+ };
+ const hideEvent = EventHandler.trigger(parent, Event$5.HIDE, relatedTarget);
+
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+
+ Manipulator.toggleClass(this._menu, ClassName$4.SHOW);
+ Manipulator.toggleClass(parent, ClassName$4.SHOW);
+ EventHandler.trigger(parent, Event$5.HIDDEN, relatedTarget);
+ }
+
+ dispose() {
+ Data.removeData(this._element, DATA_KEY$4);
+ EventHandler.off(this._element, EVENT_KEY$4);
+ this._element = null;
+ this._menu = null;
+
+ if (this._popper !== null) {
+ this._popper.destroy();
+
+ this._popper = null;
+ }
+ }
+
+ update() {
+ this._inNavbar = this._detectNavbar();
+
+ if (this._popper !== null) {
+ this._popper.scheduleUpdate();
+ }
+ } // Private
+
+
+ _addEventListeners() {
+ EventHandler.on(this._element, Event$5.CLICK, event => {
+ event.preventDefault();
+ event.stopPropagation();
+ this.toggle();
+ });
+ }
+
+ _getConfig(config) {
+ config = _extends({}, this.constructor.Default, Manipulator.getDataAttributes(this._element), config);
+ typeCheckConfig(NAME$4, config, this.constructor.DefaultType);
+ return config;
+ }
+
+ _getMenuElement() {
+ if (!this._menu) {
+ const parent = Dropdown._getParentFromElement(this._element);
+
+ if (parent) {
+ this._menu = SelectorEngine.findOne(Selector$4.MENU, parent);
+ }
+ }
+
+ return this._menu;
+ }
+
+ _getPlacement() {
+ const parentDropdown = this._element.parentNode;
+ let placement = AttachmentMap.BOTTOM; // Handle dropup
+
+ if (parentDropdown.classList.contains(ClassName$4.DROPUP)) {
+ placement = AttachmentMap.TOP;
+
+ if (this._menu.classList.contains(ClassName$4.MENURIGHT)) {
+ placement = AttachmentMap.TOPEND;
+ }
+ } else if (parentDropdown.classList.contains(ClassName$4.DROPRIGHT)) {
+ placement = AttachmentMap.RIGHT;
+ } else if (parentDropdown.classList.contains(ClassName$4.DROPLEFT)) {
+ placement = AttachmentMap.LEFT;
+ } else if (this._menu.classList.contains(ClassName$4.MENURIGHT)) {
+ placement = AttachmentMap.BOTTOMEND;
+ }
+
+ return placement;
+ }
+
+ _detectNavbar() {
+ return Boolean(SelectorEngine.closest(this._element, '.navbar'));
+ }
+
+ _getOffset() {
+ const offset = {};
+
+ if (typeof this._config.offset === 'function') {
+ offset.fn = data => {
+ data.offsets = _extends({}, data.offsets, this._config.offset(data.offsets, this._element) || {});
+ return data;
+ };
+ } else {
+ offset.offset = this._config.offset;
+ }
+
+ return offset;
+ }
+
+ _getPopperConfig() {
+ const popperConfig = {
+ placement: this._getPlacement(),
+ modifiers: {
+ offset: this._getOffset(),
+ flip: {
+ enabled: this._config.flip
+ },
+ preventOverflow: {
+ boundariesElement: this._config.boundary
+ }
+ } // Disable Popper.js if we have a static display
+
+ };
+
+ if (this._config.display === 'static') {
+ popperConfig.modifiers.applyStyle = {
+ enabled: false
+ };
+ }
+
+ return popperConfig;
+ } // Static
+
+
+ static _dropdownInterface(element, config) {
+ let data = Data.getData(element, DATA_KEY$4);
+
+ const _config = typeof config === 'object' ? config : null;
+
+ if (!data) {
+ data = new Dropdown(element, _config);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError(`No method named "${config}"`);
+ }
+
+ data[config]();
+ }
+ }
+
+ static _jQueryInterface(config) {
+ return this.each(function () {
+ Dropdown._dropdownInterface(this, config);
+ });
+ }
+
+ static _clearMenus(event) {
+ if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
+ return;
+ }
+
+ const toggles = makeArray(SelectorEngine.find(Selector$4.DATA_TOGGLE));
+
+ for (let i = 0, len = toggles.length; i < len; i++) {
+ const parent = Dropdown._getParentFromElement(toggles[i]);
+
+ const context = Data.getData(toggles[i], DATA_KEY$4);
+ const relatedTarget = {
+ relatedTarget: toggles[i]
+ };
+
+ if (event && event.type === 'click') {
+ relatedTarget.clickEvent = event;
+ }
+
+ if (!context) {
+ continue;
+ }
+
+ const dropdownMenu = context._menu;
+
+ if (!parent.classList.contains(ClassName$4.SHOW)) {
+ continue;
+ }
+
+ if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && parent.contains(event.target)) {
+ continue;
+ }
+
+ const hideEvent = EventHandler.trigger(parent, Event$5.HIDE, relatedTarget);
+
+ if (hideEvent.defaultPrevented) {
+ continue;
+ } // If this is a touch-enabled device we remove the extra
+ // empty mouseover listeners we added for iOS support
+
+
+ if ('ontouchstart' in document.documentElement) {
+ makeArray(document.body.children).forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()));
+ }
+
+ toggles[i].setAttribute('aria-expanded', 'false');
+ dropdownMenu.classList.remove(ClassName$4.SHOW);
+ parent.classList.remove(ClassName$4.SHOW);
+ EventHandler.trigger(parent, Event$5.HIDDEN, relatedTarget);
+ }
+ }
+
+ static _getParentFromElement(element) {
+ let parent;
+ const selector = getSelectorFromElement(element);
+
+ if (selector) {
+ parent = SelectorEngine.findOne(selector);
+ }
+
+ return parent || element.parentNode;
+ }
+
+ static _dataApiKeydownHandler(event) {
+ // If not input/textarea:
+ // - And not a key in REGEXP_KEYDOWN => not a dropdown command
+ // If input/textarea:
+ // - If space key => not a dropdown command
+ // - 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$4.MENU)) : !REGEXP_KEYDOWN.test(event.which)) {
+ return;
+ }
+
+ event.preventDefault();
+ event.stopPropagation();
+
+ if (this.disabled || this.classList.contains(ClassName$4.DISABLED)) {
+ return;
+ }
+
+ const parent = Dropdown._getParentFromElement(this);
+
+ const isActive = parent.classList.contains(ClassName$4.SHOW);
+
+ if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
+ if (event.which === ESCAPE_KEYCODE) {
+ EventHandler.trigger(SelectorEngine.findOne(Selector$4.DATA_TOGGLE, parent), 'focus');
+ }
+
+ Dropdown._clearMenus();
+
+ return;
+ }
+
+ const items = makeArray(SelectorEngine.find(Selector$4.VISIBLE_ITEMS, parent));
+
+ if (!items.length) {
+ return;
+ }
+
+ let index = items.indexOf(event.target);
+
+ if (event.which === ARROW_UP_KEYCODE && index > 0) {
+ // Up
+ index--;
+ }
+
+ if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
+ // Down
+ index++;
+ }
+
+ if (index < 0) {
+ index = 0;
+ }
+
+ items[index].focus();
+ }
+
+ static _getInstance(element) {
+ return Data.getData(element, DATA_KEY$4);
+ }
+
+}
+/**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+EventHandler.on(document, Event$5.KEYDOWN_DATA_API, Selector$4.DATA_TOGGLE, Dropdown._dataApiKeydownHandler);
+EventHandler.on(document, Event$5.KEYDOWN_DATA_API, Selector$4.MENU, Dropdown._dataApiKeydownHandler);
+EventHandler.on(document, Event$5.CLICK_DATA_API, Dropdown._clearMenus);
+EventHandler.on(document, Event$5.KEYUP_DATA_API, Dropdown._clearMenus);
+EventHandler.on(document, Event$5.CLICK_DATA_API, Selector$4.DATA_TOGGLE, function (event) {
+ event.preventDefault();
+ event.stopPropagation();
+
+ Dropdown._dropdownInterface(this, 'toggle');
+});
+EventHandler.on(document, Event$5.CLICK_DATA_API, Selector$4.FORM_CHILD, e => e.stopPropagation());
+/**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .dropdown to jQuery only if jQuery is present
+ */
+
+if (typeof jQuery !== 'undefined') {
+ const JQUERY_NO_CONFLICT = jQuery.fn[NAME$4];
+ jQuery.fn[NAME$4] = Dropdown._jQueryInterface;
+ jQuery.fn[NAME$4].Constructor = Dropdown;
+
+ jQuery.fn[NAME$4].noConflict = () => {
+ jQuery.fn[NAME$4] = JQUERY_NO_CONFLICT;
+ return Dropdown._jQueryInterface;
+ };
+}
+
+/**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+const NAME$5 = 'modal';
+const VERSION$5 = '4.3.1';
+const DATA_KEY$5 = 'bs.modal';
+const EVENT_KEY$5 = `.${DATA_KEY$5}`;
+const DATA_API_KEY$5 = '.data-api';
+const ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key
+
+const Default$3 = {
+ backdrop: true,
+ keyboard: true,
+ focus: true,
+ show: true
+};
+const DefaultType$3 = {
+ backdrop: '(boolean|string)',
+ keyboard: 'boolean',
+ focus: 'boolean',
+ show: 'boolean'
+};
+const Event$6 = {
+ HIDE: `hide${EVENT_KEY$5}`,
+ HIDDEN: `hidden${EVENT_KEY$5}`,
+ SHOW: `show${EVENT_KEY$5}`,
+ SHOWN: `shown${EVENT_KEY$5}`,
+ FOCUSIN: `focusin${EVENT_KEY$5}`,
+ RESIZE: `resize${EVENT_KEY$5}`,
+ CLICK_DISMISS: `click.dismiss${EVENT_KEY$5}`,
+ KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY$5}`,
+ MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY$5}`,
+ MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY$5}`,
+ CLICK_DATA_API: `click${EVENT_KEY$5}${DATA_API_KEY$5}`
+};
+const ClassName$5 = {
+ SCROLLABLE: 'modal-dialog-scrollable',
+ SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
+ BACKDROP: 'modal-backdrop',
+ OPEN: 'modal-open',
+ FADE: 'fade',
+ SHOW: 'show'
+};
+const Selector$5 = {
+ DIALOG: '.modal-dialog',
+ MODAL_BODY: '.modal-body',
+ DATA_TOGGLE: '[data-toggle="modal"]',
+ DATA_DISMISS: '[data-dismiss="modal"]',
+ FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
+ STICKY_CONTENT: '.sticky-top'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+};
+
+class Modal {
+ constructor(element, config) {
+ this._config = this._getConfig(config);
+ this._element = element;
+ this._dialog = SelectorEngine.findOne(Selector$5.DIALOG, element);
+ this._backdrop = null;
+ this._isShown = false;
+ this._isBodyOverflowing = false;
+ this._ignoreBackdropClick = false;
+ this._isTransitioning = false;
+ this._scrollbarWidth = 0;
+ Data.setData(element, DATA_KEY$5, this);
+ } // Getters
+
+
+ static get VERSION() {
+ return VERSION$5;
+ }
+
+ static get Default() {
+ return Default$3;
+ } // Public
+
+
+ toggle(relatedTarget) {
+ return this._isShown ? this.hide() : this.show(relatedTarget);
+ }
+
+ show(relatedTarget) {
+ if (this._isShown || this._isTransitioning) {
+ return;
+ }
+
+ if (this._element.classList.contains(ClassName$5.FADE)) {
+ this._isTransitioning = true;
+ }
+
+ const showEvent = EventHandler.trigger(this._element, Event$6.SHOW, {
+ relatedTarget
+ });
+
+ if (this._isShown || showEvent.defaultPrevented) {
+ return;
+ }
+
+ this._isShown = true;
+
+ this._checkScrollbar();
+
+ this._setScrollbar();
+
+ this._adjustDialog();
+
+ this._setEscapeEvent();
+
+ this._setResizeEvent();
+
+ EventHandler.on(this._element, Event$6.CLICK_DISMISS, Selector$5.DATA_DISMISS, event => this.hide(event));
+ EventHandler.on(this._dialog, Event$6.MOUSEDOWN_DISMISS, () => {
+ EventHandler.one(this._element, Event$6.MOUSEUP_DISMISS, event => {
+ if (event.target === this._element) {
+ this._ignoreBackdropClick = true;
+ }
+ });
+ });
+
+ this._showBackdrop(() => this._showElement(relatedTarget));
+ }
+
+ hide(event) {
+ if (event) {
+ event.preventDefault();
+ }
+
+ if (!this._isShown || this._isTransitioning) {
+ return;
+ }
+
+ const hideEvent = EventHandler.trigger(this._element, Event$6.HIDE);
+
+ if (!this._isShown || hideEvent.defaultPrevented) {
+ return;
+ }
+
+ this._isShown = false;
+
+ const transition = this._element.classList.contains(ClassName$5.FADE);
+
+ if (transition) {
+ this._isTransitioning = true;
+ }
+
+ this._setEscapeEvent();
+
+ this._setResizeEvent();
+
+ EventHandler.off(document, Event$6.FOCUSIN);
+
+ this._element.classList.remove(ClassName$5.SHOW);
+
+ EventHandler.off(this._element, Event$6.CLICK_DISMISS);
+ EventHandler.off(this._dialog, Event$6.MOUSEDOWN_DISMISS);
+
+ if (transition) {
+ const transitionDuration = getTransitionDurationFromElement(this._element);
+ EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event));
+ emulateTransitionEnd(this._element, transitionDuration);
+ } else {
+ this._hideModal();
+ }
+ }
+
+ dispose() {
+ [window, this._element, this._dialog].forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY$5));
+ /**
+ * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`
+ * Do not move `document` in `htmlElements` array
+ * It will remove `Event.CLICK_DATA_API` event that should remain
+ */
+
+ EventHandler.off(document, Event$6.FOCUSIN);
+ Data.removeData(this._element, DATA_KEY$5);
+ this._config = null;
+ this._element = null;
+ this._dialog = null;
+ this._backdrop = null;
+ this._isShown = null;
+ this._isBodyOverflowing = null;
+ this._ignoreBackdropClick = null;
+ this._isTransitioning = null;
+ this._scrollbarWidth = null;
+ }
+
+ handleUpdate() {
+ this._adjustDialog();
+ } // Private
+
+
+ _getConfig(config) {
+ config = _extends({}, Default$3, config);
+ typeCheckConfig(NAME$5, config, DefaultType$3);
+ return config;
+ }
+
+ _showElement(relatedTarget) {
+ const transition = this._element.classList.contains(ClassName$5.FADE);
+
+ if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
+ // Don't move modal's DOM position
+ document.body.appendChild(this._element);
+ }
+
+ this._element.style.display = 'block';
+
+ this._element.removeAttribute('aria-hidden');
+
+ this._element.setAttribute('aria-modal', true);
+
+ if (this._dialog.classList.contains(ClassName$5.SCROLLABLE)) {
+ SelectorEngine.findOne(Selector$5.MODAL_BODY, this._dialog).scrollTop = 0;
+ } else {
+ this._element.scrollTop = 0;
+ }
+
+ if (transition) {
+ reflow(this._element);
+ }
+
+ this._element.classList.add(ClassName$5.SHOW);
+
+ if (this._config.focus) {
+ this._enforceFocus();
+ }
+
+ const transitionComplete = () => {
+ if (this._config.focus) {
+ this._element.focus();
+ }
+
+ this._isTransitioning = false;
+ EventHandler.trigger(this._element, Event$6.SHOWN, {
+ relatedTarget
+ });
+ };
+
+ if (transition) {
+ const transitionDuration = getTransitionDurationFromElement(this._dialog);
+ EventHandler.one(this._dialog, TRANSITION_END, transitionComplete);
+ emulateTransitionEnd(this._dialog, transitionDuration);
+ } else {
+ transitionComplete();
+ }
+ }
+
+ _enforceFocus() {
+ EventHandler.off(document, Event$6.FOCUSIN); // guard against infinite focus loop
+
+ EventHandler.on(document, Event$6.FOCUSIN, event => {
+ if (document !== event.target && this._element !== event.target && !this._element.contains(event.target)) {
+ this._element.focus();
+ }
+ });
+ }
+
+ _setEscapeEvent() {
+ if (this._isShown && this._config.keyboard) {
+ EventHandler.on(this._element, Event$6.KEYDOWN_DISMISS, event => {
+ if (event.which === ESCAPE_KEYCODE$1) {
+ event.preventDefault();
+ this.hide();
+ }
+ });
+ } else if (!this._isShown) {
+ EventHandler.off(this._element, Event$6.KEYDOWN_DISMISS);
+ }
+ }
+
+ _setResizeEvent() {
+ if (this._isShown) {
+ EventHandler.on(window, Event$6.RESIZE, event => this.handleUpdate(event));
+ } else {
+ EventHandler.off(window, Event$6.RESIZE);
+ }
+ }
+
+ _hideModal() {
+ this._element.style.display = 'none';
+
+ this._element.setAttribute('aria-hidden', true);
+
+ this._element.removeAttribute('aria-modal');
+
+ this._isTransitioning = false;
+
+ this._showBackdrop(() => {
+ document.body.classList.remove(ClassName$5.OPEN);
+
+ this._resetAdjustments();
+
+ this._resetScrollbar();
+
+ EventHandler.trigger(this._element, Event$6.HIDDEN);
+ });
+ }
+
+ _removeBackdrop() {
+ if (this._backdrop) {
+ this._backdrop.parentNode.removeChild(this._backdrop);
+
+ this._backdrop = null;
+ }
+ }
+
+ _showBackdrop(callback) {
+ const animate = this._element.classList.contains(ClassName$5.FADE) ? ClassName$5.FADE : '';
+
+ if (this._isShown && this._config.backdrop) {
+ this._backdrop = document.createElement('div');
+ this._backdrop.className = ClassName$5.BACKDROP;
+
+ if (animate) {
+ this._backdrop.classList.add(animate);
+ }
+
+ document.body.appendChild(this._backdrop);
+ EventHandler.on(this._element, Event$6.CLICK_DISMISS, event => {
+ if (this._ignoreBackdropClick) {
+ this._ignoreBackdropClick = false;
+ return;
+ }
+
+ if (event.target !== event.currentTarget) {
+ return;
+ }
+
+ if (this._config.backdrop === 'static') {
+ this._element.focus();
+ } else {
+ this.hide();
+ }
+ });
+
+ if (animate) {
+ reflow(this._backdrop);
+ }
+
+ this._backdrop.classList.add(ClassName$5.SHOW);
+
+ if (!callback) {
+ return;
+ }
+
+ if (!animate) {
+ callback();
+ return;
+ }
+
+ const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
+ EventHandler.one(this._backdrop, TRANSITION_END, callback);
+ emulateTransitionEnd(this._backdrop, backdropTransitionDuration);
+ } else if (!this._isShown && this._backdrop) {
+ this._backdrop.classList.remove(ClassName$5.SHOW);
+
+ const callbackRemove = () => {
+ this._removeBackdrop();
+
+ if (callback) {
+ callback();
+ }
+ };
+
+ if (this._element.classList.contains(ClassName$5.FADE)) {
+ const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop);
+ EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove);
+ emulateTransitionEnd(this._backdrop, backdropTransitionDuration);
+ } else {
+ callbackRemove();
+ }
+ } else if (callback) {
+ callback();
+ }
+ } // ----------------------------------------------------------------------
+ // the following methods are used to handle overflowing modals
+ // ----------------------------------------------------------------------
+
+
+ _adjustDialog() {
+ const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
+
+ if (!this._isBodyOverflowing && isModalOverflowing) {
+ this._element.style.paddingLeft = `${this._scrollbarWidth}px`;
+ }
+
+ if (this._isBodyOverflowing && !isModalOverflowing) {
+ this._element.style.paddingRight = `${this._scrollbarWidth}px`;
+ }
+ }
+
+ _resetAdjustments() {
+ this._element.style.paddingLeft = '';
+ this._element.style.paddingRight = '';
+ }
+
+ _checkScrollbar() {
+ const rect = document.body.getBoundingClientRect();
+ this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
+ this._scrollbarWidth = this._getScrollbarWidth();
+ }
+
+ _setScrollbar() {
+ if (this._isBodyOverflowing) {
+ // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
+ // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
+ // Adjust fixed content padding
+ makeArray(SelectorEngine.find(Selector$5.FIXED_CONTENT)).forEach(element => {
+ const actualPadding = element.style.paddingRight;
+ const calculatedPadding = window.getComputedStyle(element)['padding-right'];
+ Manipulator.setDataAttribute(element, 'padding-right', actualPadding);
+ element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`;
+ }); // Adjust sticky content margin
+
+ makeArray(SelectorEngine.find(Selector$5.STICKY_CONTENT)).forEach(element => {
+ const actualMargin = element.style.marginRight;
+ const calculatedMargin = window.getComputedStyle(element)['margin-right'];
+ Manipulator.setDataAttribute(element, 'margin-right', actualMargin);
+ element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`;
+ }); // Adjust body padding
+
+ const actualPadding = document.body.style.paddingRight;
+ const calculatedPadding = window.getComputedStyle(document.body)['padding-right'];
+ Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding);
+ document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`;
+ }
+
+ document.body.classList.add(ClassName$5.OPEN);
+ }
+
+ _resetScrollbar() {
+ // Restore fixed content padding
+ makeArray(SelectorEngine.find(Selector$5.FIXED_CONTENT)).forEach(element => {
+ const padding = Manipulator.getDataAttribute(element, 'padding-right');
+
+ if (typeof padding !== 'undefined') {
+ Manipulator.removeDataAttribute(element, 'padding-right');
+ element.style.paddingRight = padding;
+ }
+ }); // Restore sticky content and navbar-toggler margin
+
+ makeArray(SelectorEngine.find(`${Selector$5.STICKY_CONTENT}`)).forEach(element => {
+ const margin = Manipulator.getDataAttribute(element, 'margin-right');
+
+ if (typeof margin !== 'undefined') {
+ Manipulator.removeDataAttribute(element, 'margin-right');
+ element.style.marginRight = margin;
+ }
+ }); // Restore body padding
+
+ const padding = Manipulator.getDataAttribute(document.body, 'padding-right');
+
+ if (typeof padding === 'undefined') {
+ document.body.style.paddingRight = '';
+ } else {
+ Manipulator.removeDataAttribute(document.body, 'padding-right');
+ document.body.style.paddingRight = padding;
+ }
+ }
+
+ _getScrollbarWidth() {
+ // thx d.walsh
+ const scrollDiv = document.createElement('div');
+ scrollDiv.className = ClassName$5.SCROLLBAR_MEASURER;
+ document.body.appendChild(scrollDiv);
+ const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
+ document.body.removeChild(scrollDiv);
+ return scrollbarWidth;
+ } // Static
+
+
+ static _jQueryInterface(config, relatedTarget) {
+ return this.each(function () {
+ let data = Data.getData(this, DATA_KEY$5);
+
+ const _config = _extends({}, Default$3, Manipulator.getDataAttributes(this), typeof config === 'object' && config ? config : {});
+
+ if (!data) {
+ data = new Modal(this, _config);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError(`No method named "${config}"`);
+ }
+
+ data[config](relatedTarget);
+ } else if (_config.show) {
+ data.show(relatedTarget);
+ }
+ });
+ }
+
+ static _getInstance(element) {
+ return Data.getData(element, DATA_KEY$5);
+ }
+
+}
+/**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+EventHandler.on(document, Event$6.CLICK_DATA_API, Selector$5.DATA_TOGGLE, function (event) {
+ let target;
+ const selector = getSelectorFromElement(this);
+
+ if (selector) {
+ target = SelectorEngine.findOne(selector);
+ }
+
+ const config = Data.getData(target, DATA_KEY$5) ? 'toggle' : _extends({}, Manipulator.getDataAttributes(target), Manipulator.getDataAttributes(this));
+
+ if (this.tagName === 'A' || this.tagName === 'AREA') {
+ event.preventDefault();
+ }
+
+ EventHandler.one(target, Event$6.SHOW, showEvent => {
+ if (showEvent.defaultPrevented) {
+ // only register focus restorer if modal will actually get shown
+ return;
+ }
+
+ EventHandler.one(target, Event$6.HIDDEN, () => {
+ if (isVisible(this)) {
+ this.focus();
+ }
+ });
+ });
+ let data = Data.getData(target, DATA_KEY$5);
+
+ if (!data) {
+ data = new Modal(target, config);
+ }
+
+ data.show(this);
+});
+/**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+if (typeof jQuery !== 'undefined') {
+ const JQUERY_NO_CONFLICT = jQuery.fn[NAME$5];
+ jQuery.fn[NAME$5] = Modal._jQueryInterface;
+ jQuery.fn[NAME$5].Constructor = Modal;
+
+ jQuery.fn[NAME$5].noConflict = () => {
+ jQuery.fn[NAME$5] = JQUERY_NO_CONFLICT;
+ return Modal._jQueryInterface;
+ };
+}
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.3.1): util/sanitizer.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+const uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];
+const ARIA_ATTRIBUTE_PATTERN = /^aria-[\w-]*$/i;
+/**
+ * A pattern that recognizes a commonly useful subset of URLs that are safe.
+ *
+ * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
+ */
+
+const SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi;
+/**
+ * A pattern that matches safe data URLs. Only matches image, video and audio types.
+ *
+ * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts
+ */
+
+const DATA_URL_PATTERN = /^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i;
+
+const allowedAttribute = (attr, allowedAttributeList) => {
+ const attrName = attr.nodeName.toLowerCase();
+
+ if (allowedAttributeList.indexOf(attrName) !== -1) {
+ if (uriAttrs.indexOf(attrName) !== -1) {
+ return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN));
+ }
+
+ return true;
+ }
+
+ const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp); // Check if a regular expression validates the attribute.
+
+ for (let i = 0, l = regExp.length; i < l; i++) {
+ if (attrName.match(regExp[i])) {
+ return true;
+ }
+ }
+
+ return false;
+};
+
+const DefaultWhitelist = {
+ // Global attributes allowed on any supplied element below.
+ '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],
+ a: ['target', 'href', 'title', 'rel'],
+ area: [],
+ b: [],
+ br: [],
+ col: [],
+ code: [],
+ div: [],
+ em: [],
+ hr: [],
+ h1: [],
+ h2: [],
+ h3: [],
+ h4: [],
+ h5: [],
+ h6: [],
+ i: [],
+ img: ['src', 'alt', 'title', 'width', 'height'],
+ li: [],
+ ol: [],
+ p: [],
+ pre: [],
+ s: [],
+ small: [],
+ span: [],
+ sub: [],
+ sup: [],
+ strong: [],
+ u: [],
+ ul: []
+};
+function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {
+ if (!unsafeHtml.length) {
+ return unsafeHtml;
+ }
+
+ if (sanitizeFn && typeof sanitizeFn === 'function') {
+ return sanitizeFn(unsafeHtml);
+ }
+
+ const domParser = new window.DOMParser();
+ const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');
+ const whitelistKeys = Object.keys(whiteList);
+ const elements = makeArray(createdDocument.body.querySelectorAll('*'));
+
+ for (let i = 0, len = elements.length; i < len; i++) {
+ const el = elements[i];
+ const elName = el.nodeName.toLowerCase();
+
+ if (whitelistKeys.indexOf(elName) === -1) {
+ el.parentNode.removeChild(el);
+ continue;
+ }
+
+ const attributeList = makeArray(el.attributes);
+ const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);
+ attributeList.forEach(attr => {
+ if (!allowedAttribute(attr, whitelistedAttributes)) {
+ el.removeAttribute(attr.nodeName);
+ }
+ });
+ }
+
+ return createdDocument.body.innerHTML;
+}
+
+/**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+const NAME$6 = 'tooltip';
+const VERSION$6 = '4.3.1';
+const DATA_KEY$6 = 'bs.tooltip';
+const EVENT_KEY$6 = `.${DATA_KEY$6}`;
+const CLASS_PREFIX = 'bs-tooltip';
+const BSCLS_PREFIX_REGEX = new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`, 'g');
+const DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];
+const 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'
+};
+const AttachmentMap$1 = {
+ AUTO: 'auto',
+ TOP: 'top',
+ RIGHT: 'right',
+ BOTTOM: 'bottom',
+ LEFT: 'left'
+};
+const Default$4 = {
+ animation: true,
+ template: '<div class="tooltip" role="tooltip">' + '<div class="tooltip-arrow"></div>' + '<div class="tooltip-inner"></div></div>',
+ trigger: 'hover focus',
+ title: '',
+ delay: 0,
+ html: false,
+ selector: false,
+ placement: 'top',
+ offset: 0,
+ container: false,
+ fallbackPlacement: 'flip',
+ boundary: 'scrollParent',
+ sanitize: true,
+ sanitizeFn: null,
+ whiteList: DefaultWhitelist
+};
+const HoverState = {
+ SHOW: 'show',
+ OUT: 'out'
+};
+const Event$7 = {
+ HIDE: `hide${EVENT_KEY$6}`,
+ HIDDEN: `hidden${EVENT_KEY$6}`,
+ SHOW: `show${EVENT_KEY$6}`,
+ SHOWN: `shown${EVENT_KEY$6}`,
+ INSERTED: `inserted${EVENT_KEY$6}`,
+ CLICK: `click${EVENT_KEY$6}`,
+ FOCUSIN: `focusin${EVENT_KEY$6}`,
+ FOCUSOUT: `focusout${EVENT_KEY$6}`,
+ MOUSEENTER: `mouseenter${EVENT_KEY$6}`,
+ MOUSELEAVE: `mouseleave${EVENT_KEY$6}`
+};
+const ClassName$6 = {
+ FADE: 'fade',
+ SHOW: 'show'
+};
+const Selector$6 = {
+ TOOLTIP_INNER: '.tooltip-inner',
+ TOOLTIP_ARROW: '.tooltip-arrow'
+};
+const Trigger = {
+ HOVER: 'hover',
+ FOCUS: 'focus',
+ CLICK: 'click',
+ MANUAL: 'manual'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+};
+
+class Tooltip {
+ constructor(element, config) {
+ /**
+ * Check for Popper dependency
+ * Popper - https://popper.js.org
+ */
+ if (typeof Popper === 'undefined') {
+ throw new TypeError('Bootstrap\'s tooltips require Popper.js (https://popper.js.org)');
+ } // private
+
+
+ this._isEnabled = true;
+ this._timeout = 0;
+ this._hoverState = '';
+ this._activeTrigger = {};
+ this._popper = null; // Protected
+
+ this.element = element;
+ this.config = this._getConfig(config);
+ this.tip = null;
+
+ this._setListeners();
+
+ Data.setData(element, this.constructor.DATA_KEY, this);
+ } // Getters
+
+
+ static get VERSION() {
+ return VERSION$6;
+ }
+
+ static get Default() {
+ return Default$4;
+ }
+
+ static get NAME() {
+ return NAME$6;
+ }
+
+ static get DATA_KEY() {
+ return DATA_KEY$6;
+ }
+
+ static get Event() {
+ return Event$7;
+ }
+
+ static get EVENT_KEY() {
+ return EVENT_KEY$6;
+ }
+
+ static get DefaultType() {
+ return DefaultType$4;
+ } // Public
+
+
+ enable() {
+ this._isEnabled = true;
+ }
+
+ disable() {
+ this._isEnabled = false;
+ }
+
+ toggleEnabled() {
+ this._isEnabled = !this._isEnabled;
+ }
+
+ toggle(event) {
+ if (!this._isEnabled) {
+ return;
+ }
+
+ if (event) {
+ const dataKey = this.constructor.DATA_KEY;
+ let context = Data.getData(event.delegateTarget, dataKey);
+
+ if (!context) {
+ context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
+ Data.setData(event.delegateTarget, dataKey, context);
+ }
+
+ context._activeTrigger.click = !context._activeTrigger.click;
+
+ if (context._isWithActiveTrigger()) {
+ context._enter(null, context);
+ } else {
+ context._leave(null, context);
+ }
+ } else {
+ if (this.getTipElement().classList.contains(ClassName$6.SHOW)) {
+ this._leave(null, this);
+
+ return;
+ }
+
+ this._enter(null, this);
+ }
+ }
+
+ dispose() {
+ clearTimeout(this._timeout);
+ Data.removeData(this.element, this.constructor.DATA_KEY);
+ EventHandler.off(this.element, this.constructor.EVENT_KEY);
+ EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal');
+
+ if (this.tip) {
+ this.tip.parentNode.removeChild(this.tip);
+ }
+
+ this._isEnabled = null;
+ this._timeout = null;
+ this._hoverState = null;
+ this._activeTrigger = null;
+
+ if (this._popper !== null) {
+ this._popper.destroy();
+ }
+
+ this._popper = null;
+ this.element = null;
+ this.config = null;
+ this.tip = null;
+ }
+
+ show() {
+ if (this.element.style.display === 'none') {
+ throw new Error('Please use show on visible elements');
+ }
+
+ if (this.isWithContent() && this._isEnabled) {
+ const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW);
+ const shadowRoot = findShadowRoot(this.element);
+ const isInTheDom = shadowRoot === null ? this.element.ownerDocument.documentElement.contains(this.element) : shadowRoot.contains(this.element);
+
+ if (showEvent.defaultPrevented || !isInTheDom) {
+ return;
+ }
+
+ const tip = this.getTipElement();
+ const tipId = getUID(this.constructor.NAME);
+ tip.setAttribute('id', tipId);
+ this.element.setAttribute('aria-describedby', tipId);
+ this.setContent();
+
+ if (this.config.animation) {
+ tip.classList.add(ClassName$6.FADE);
+ }
+
+ const placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
+
+ const attachment = this._getAttachment(placement);
+
+ this.addAttachmentClass(attachment);
+
+ const container = this._getContainer();
+
+ Data.setData(tip, this.constructor.DATA_KEY, this);
+
+ if (!this.element.ownerDocument.documentElement.contains(this.tip)) {
+ container.appendChild(tip);
+ }
+
+ EventHandler.trigger(this.element, this.constructor.Event.INSERTED);
+ this._popper = new Popper(this.element, tip, {
+ placement: attachment,
+ modifiers: {
+ offset: this._getOffset(),
+ flip: {
+ behavior: this.config.fallbackPlacement
+ },
+ arrow: {
+ element: Selector$6.TOOLTIP_ARROW
+ },
+ preventOverflow: {
+ boundariesElement: this.config.boundary
+ }
+ },
+ onCreate: data => {
+ if (data.originalPlacement !== data.placement) {
+ this._handlePopperPlacementChange(data);
+ }
+ },
+ onUpdate: data => this._handlePopperPlacementChange(data)
+ });
+ tip.classList.add(ClassName$6.SHOW); // If this is a touch-enabled device we add extra
+ // empty mouseover listeners to the body's immediate children;
+ // only needed because of broken event delegation on iOS
+ // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
+
+ if ('ontouchstart' in document.documentElement) {
+ makeArray(document.body.children).forEach(element => {
+ EventHandler.on(element, 'mouseover', noop());
+ });
+ }
+
+ const complete = () => {
+ if (this.config.animation) {
+ this._fixTransition();
+ }
+
+ const prevHoverState = this._hoverState;
+ this._hoverState = null;
+ EventHandler.trigger(this.element, this.constructor.Event.SHOWN);
+
+ if (prevHoverState === HoverState.OUT) {
+ this._leave(null, this);
+ }
+ };
+
+ if (this.tip.classList.contains(ClassName$6.FADE)) {
+ const transitionDuration = getTransitionDurationFromElement(this.tip);
+ EventHandler.one(this.tip, TRANSITION_END, complete);
+ emulateTransitionEnd(this.tip, transitionDuration);
+ } else {
+ complete();
+ }
+ }
+ }
+
+ hide(callback) {
+ const tip = this.getTipElement();
+
+ const complete = () => {
+ if (this._hoverState !== HoverState.SHOW && tip.parentNode) {
+ tip.parentNode.removeChild(tip);
+ }
+
+ this._cleanTipClass();
+
+ this.element.removeAttribute('aria-describedby');
+ EventHandler.trigger(this.element, this.constructor.Event.HIDDEN);
+
+ if (this._popper !== null) {
+ this._popper.destroy();
+ }
+
+ if (callback) {
+ callback();
+ }
+ };
+
+ const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE);
+
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
+
+ tip.classList.remove(ClassName$6.SHOW); // If this is a touch-enabled device we remove the extra
+ // empty mouseover listeners we added for iOS support
+
+ if ('ontouchstart' in document.documentElement) {
+ makeArray(document.body.children).forEach(element => EventHandler.off(element, 'mouseover', noop));
+ }
+
+ this._activeTrigger[Trigger.CLICK] = false;
+ this._activeTrigger[Trigger.FOCUS] = false;
+ this._activeTrigger[Trigger.HOVER] = false;
+
+ if (this.tip.classList.contains(ClassName$6.FADE)) {
+ const transitionDuration = getTransitionDurationFromElement(tip);
+ EventHandler.one(tip, TRANSITION_END, complete);
+ emulateTransitionEnd(tip, transitionDuration);
+ } else {
+ complete();
+ }
+
+ this._hoverState = '';
+ }
+
+ update() {
+ if (this._popper !== null) {
+ this._popper.scheduleUpdate();
+ }
+ } // Protected
+
+
+ isWithContent() {
+ return Boolean(this.getTitle());
+ }
+
+ addAttachmentClass(attachment) {
+ this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`);
+ }
+
+ getTipElement() {
+ if (this.tip) {
+ return this.tip;
+ }
+
+ const element = document.createElement('div');
+ element.innerHTML = this.config.template;
+ this.tip = element.children[0];
+ return this.tip;
+ }
+
+ setContent() {
+ const tip = this.getTipElement();
+ this.setElementContent(SelectorEngine.findOne(Selector$6.TOOLTIP_INNER, tip), this.getTitle());
+ tip.classList.remove(ClassName$6.FADE);
+ tip.classList.remove(ClassName$6.SHOW);
+ }
+
+ setElementContent(element, content) {
+ if (element === null) {
+ return;
+ }
+
+ if (typeof content === 'object' && (content.nodeType || content.jquery)) {
+ if (content.jquery) {
+ content = content[0];
+ } // content is a DOM node or a jQuery
+
+
+ if (this.config.html) {
+ if (content.parentNode !== element) {
+ element.innerHTML = '';
+ element.appendChild(content);
+ }
+ } else {
+ element.innerText = content.textContent;
+ }
+
+ return;
+ }
+
+ if (this.config.html) {
+ if (this.config.sanitize) {
+ content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn);
+ }
+
+ element.innerHTML = content;
+ } else {
+ element.innerText = content;
+ }
+ }
+
+ getTitle() {
+ let title = this.element.getAttribute('data-original-title');
+
+ if (!title) {
+ title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;
+ }
+
+ return title;
+ } // Private
+
+
+ _getOffset() {
+ const offset = {};
+
+ if (typeof this.config.offset === 'function') {
+ offset.fn = data => {
+ data.offsets = _extends({}, data.offsets, this.config.offset(data.offsets, this.element) || {});
+ return data;
+ };
+ } else {
+ offset.offset = this.config.offset;
+ }
+
+ return offset;
+ }
+
+ _getContainer() {
+ if (this.config.container === false) {
+ return document.body;
+ }
+
+ if (isElement(this.config.container)) {
+ return this.config.container;
+ }
+
+ return SelectorEngine.findOne(this.config.container);
+ }
+
+ _getAttachment(placement) {
+ return AttachmentMap$1[placement.toUpperCase()];
+ }
+
+ _setListeners() {
+ const triggers = this.config.trigger.split(' ');
+ triggers.forEach(trigger => {
+ if (trigger === 'click') {
+ EventHandler.on(this.element, this.constructor.Event.CLICK, this.config.selector, event => this.toggle(event));
+ } else if (trigger !== Trigger.MANUAL) {
+ const eventIn = trigger === Trigger.HOVER ? this.constructor.Event.MOUSEENTER : this.constructor.Event.FOCUSIN;
+ const eventOut = trigger === Trigger.HOVER ? this.constructor.Event.MOUSELEAVE : this.constructor.Event.FOCUSOUT;
+ EventHandler.on(this.element, eventIn, this.config.selector, event => this._enter(event));
+ EventHandler.on(this.element, eventOut, this.config.selector, event => this._leave(event));
+ }
+ });
+ EventHandler.on(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', () => {
+ if (this.element) {
+ this.hide();
+ }
+ });
+
+ if (this.config.selector) {
+ this.config = _extends({}, this.config, {
+ trigger: 'manual',
+ selector: ''
+ });
+ } else {
+ this._fixTitle();
+ }
+ }
+
+ _fixTitle() {
+ const titleType = typeof this.element.getAttribute('data-original-title');
+
+ if (this.element.getAttribute('title') || titleType !== 'string') {
+ this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
+ this.element.setAttribute('title', '');
+ }
+ }
+
+ _enter(event, context) {
+ const dataKey = this.constructor.DATA_KEY;
+ context = context || Data.getData(event.delegateTarget, dataKey);
+
+ if (!context) {
+ context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
+ Data.setData(event.delegateTarget, dataKey, context);
+ }
+
+ if (event) {
+ context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true;
+ }
+
+ if (context.getTipElement().classList.contains(ClassName$6.SHOW) || context._hoverState === HoverState.SHOW) {
+ context._hoverState = HoverState.SHOW;
+ return;
+ }
+
+ clearTimeout(context._timeout);
+ context._hoverState = HoverState.SHOW;
+
+ if (!context.config.delay || !context.config.delay.show) {
+ context.show();
+ return;
+ }
+
+ context._timeout = setTimeout(() => {
+ if (context._hoverState === HoverState.SHOW) {
+ context.show();
+ }
+ }, context.config.delay.show);
+ }
+
+ _leave(event, context) {
+ const dataKey = this.constructor.DATA_KEY;
+ context = context || Data.getData(event.delegateTarget, dataKey);
+
+ if (!context) {
+ context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
+ Data.setData(event.delegateTarget, dataKey, context);
+ }
+
+ if (event) {
+ context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false;
+ }
+
+ if (context._isWithActiveTrigger()) {
+ return;
+ }
+
+ clearTimeout(context._timeout);
+ context._hoverState = HoverState.OUT;
+
+ if (!context.config.delay || !context.config.delay.hide) {
+ context.hide();
+ return;
+ }
+
+ context._timeout = setTimeout(() => {
+ if (context._hoverState === HoverState.OUT) {
+ context.hide();
+ }
+ }, context.config.delay.hide);
+ }
+
+ _isWithActiveTrigger() {
+ for (const trigger in this._activeTrigger) {
+ if (this._activeTrigger[trigger]) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ _getConfig(config) {
+ const dataAttributes = Manipulator.getDataAttributes(this.element);
+ Object.keys(dataAttributes).forEach(dataAttr => {
+ if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {
+ delete dataAttributes[dataAttr];
+ }
+ });
+
+ if (config && typeof config.container === 'object' && config.container.jquery) {
+ config.container = config.container[0];
+ }
+
+ config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});
+
+ if (typeof config.delay === 'number') {
+ config.delay = {
+ show: config.delay,
+ hide: config.delay
+ };
+ }
+
+ if (typeof config.title === 'number') {
+ config.title = config.title.toString();
+ }
+
+ if (typeof config.content === 'number') {
+ config.content = config.content.toString();
+ }
+
+ typeCheckConfig(NAME$6, config, this.constructor.DefaultType);
+
+ if (config.sanitize) {
+ config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);
+ }
+
+ return config;
+ }
+
+ _getDelegateConfig() {
+ const config = {};
+
+ if (this.config) {
+ for (const key in this.config) {
+ if (this.constructor.Default[key] !== this.config[key]) {
+ config[key] = this.config[key];
+ }
+ }
+ }
+
+ return config;
+ }
+
+ _cleanTipClass() {
+ const tip = this.getTipElement();
+ const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX);
+
+ if (tabClass !== null && tabClass.length) {
+ tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass));
+ }
+ }
+
+ _handlePopperPlacementChange(popperData) {
+ const popperInstance = popperData.instance;
+ this.tip = popperInstance.popper;
+
+ this._cleanTipClass();
+
+ this.addAttachmentClass(this._getAttachment(popperData.placement));
+ }
+
+ _fixTransition() {
+ const tip = this.getTipElement();
+ const initConfigAnimation = this.config.animation;
+
+ if (tip.getAttribute('x-placement') !== null) {
+ return;
+ }
+
+ tip.classList.remove(ClassName$6.FADE);
+ this.config.animation = false;
+ this.hide();
+ this.show();
+ this.config.animation = initConfigAnimation;
+ } // Static
+
+
+ static _jQueryInterface(config) {
+ return this.each(function () {
+ let data = Data.getData(this, DATA_KEY$6);
+
+ const _config = typeof config === 'object' && config;
+
+ if (!data && /dispose|hide/.test(config)) {
+ return;
+ }
+
+ if (!data) {
+ data = new Tooltip(this, _config);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError(`No method named "${config}"`);
+ }
+
+ data[config]();
+ }
+ });
+ }
+
+ static _getInstance(element) {
+ return Data.getData(element, DATA_KEY$6);
+ }
+
+}
+/**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .tooltip to jQuery only if jQuery is present
+ */
+
+
+if (typeof jQuery !== 'undefined') {
+ const JQUERY_NO_CONFLICT = jQuery.fn[NAME$6];
+ jQuery.fn[NAME$6] = Tooltip._jQueryInterface;
+ jQuery.fn[NAME$6].Constructor = Tooltip;
+
+ jQuery.fn[NAME$6].noConflict = () => {
+ jQuery.fn[NAME$6] = JQUERY_NO_CONFLICT;
+ return Tooltip._jQueryInterface;
+ };
+}
+
+/**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+const NAME$7 = 'popover';
+const VERSION$7 = '4.3.1';
+const DATA_KEY$7 = 'bs.popover';
+const EVENT_KEY$7 = `.${DATA_KEY$7}`;
+const CLASS_PREFIX$1 = 'bs-popover';
+const BSCLS_PREFIX_REGEX$1 = new RegExp(`(^|\\s)${CLASS_PREFIX$1}\\S+`, 'g');
+
+const Default$5 = _extends({}, 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>'
+});
+
+const DefaultType$5 = _extends({}, Tooltip.DefaultType, {
+ content: '(string|element|function)'
+});
+
+const ClassName$7 = {
+ FADE: 'fade',
+ SHOW: 'show'
+};
+const Selector$7 = {
+ TITLE: '.popover-header',
+ CONTENT: '.popover-body'
+};
+const Event$8 = {
+ HIDE: `hide${EVENT_KEY$7}`,
+ HIDDEN: `hidden${EVENT_KEY$7}`,
+ SHOW: `show${EVENT_KEY$7}`,
+ SHOWN: `shown${EVENT_KEY$7}`,
+ INSERTED: `inserted${EVENT_KEY$7}`,
+ CLICK: `click${EVENT_KEY$7}`,
+ FOCUSIN: `focusin${EVENT_KEY$7}`,
+ FOCUSOUT: `focusout${EVENT_KEY$7}`,
+ MOUSEENTER: `mouseenter${EVENT_KEY$7}`,
+ MOUSELEAVE: `mouseleave${EVENT_KEY$7}`
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+};
+
+class Popover extends Tooltip {
+ // Getters
+ static get VERSION() {
+ return VERSION$7;
+ }
+
+ static get Default() {
+ return Default$5;
+ }
+
+ static get NAME() {
+ return NAME$7;
+ }
+
+ static get DATA_KEY() {
+ return DATA_KEY$7;
+ }
+
+ static get Event() {
+ return Event$8;
+ }
+
+ static get EVENT_KEY() {
+ return EVENT_KEY$7;
+ }
+
+ static get DefaultType() {
+ return DefaultType$5;
+ } // Overrides
+
+
+ isWithContent() {
+ return this.getTitle() || this._getContent();
+ }
+
+ addAttachmentClass(attachment) {
+ this.getTipElement().classList.add(`${CLASS_PREFIX$1}-${attachment}`);
+ }
+
+ setContent() {
+ const tip = this.getTipElement(); // we use append for html objects to maintain js events
+
+ this.setElementContent(SelectorEngine.findOne(Selector$7.TITLE, tip), this.getTitle());
+
+ let content = this._getContent();
+
+ if (typeof content === 'function') {
+ content = content.call(this.element);
+ }
+
+ this.setElementContent(SelectorEngine.findOne(Selector$7.CONTENT, tip), content);
+ tip.classList.remove(ClassName$7.FADE);
+ tip.classList.remove(ClassName$7.SHOW);
+ } // Private
+
+
+ _getContent() {
+ return this.element.getAttribute('data-content') || this.config.content;
+ }
+
+ _cleanTipClass() {
+ const tip = this.getTipElement();
+ const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX$1);
+
+ if (tabClass !== null && tabClass.length > 0) {
+ tabClass.map(token => token.trim()).forEach(tClass => tip.classList.remove(tClass));
+ }
+ } // Static
+
+
+ static _jQueryInterface(config) {
+ return this.each(function () {
+ let data = Data.getData(this, DATA_KEY$7);
+
+ const _config = typeof config === 'object' ? config : null;
+
+ if (!data && /dispose|hide/.test(config)) {
+ return;
+ }
+
+ if (!data) {
+ data = new Popover(this, _config);
+ Data.setData(this, DATA_KEY$7, data);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError(`No method named "${config}"`);
+ }
+
+ data[config]();
+ }
+ });
+ }
+
+ static _getInstance(element) {
+ return Data.getData(element, DATA_KEY$7);
+ }
+
+}
+/**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+
+if (typeof jQuery !== 'undefined') {
+ const JQUERY_NO_CONFLICT = jQuery.fn[NAME$7];
+ jQuery.fn[NAME$7] = Popover._jQueryInterface;
+ jQuery.fn[NAME$7].Constructor = Popover;
+
+ jQuery.fn[NAME$7].noConflict = () => {
+ jQuery.fn[NAME$7] = JQUERY_NO_CONFLICT;
+ return Popover._jQueryInterface;
+ };
+}
+
+/**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+const NAME$8 = 'scrollspy';
+const VERSION$8 = '4.3.1';
+const DATA_KEY$8 = 'bs.scrollspy';
+const EVENT_KEY$8 = `.${DATA_KEY$8}`;
+const DATA_API_KEY$6 = '.data-api';
+const Default$6 = {
+ offset: 10,
+ method: 'auto',
+ target: ''
+};
+const DefaultType$6 = {
+ offset: 'number',
+ method: 'string',
+ target: '(string|element)'
+};
+const Event$9 = {
+ ACTIVATE: `activate${EVENT_KEY$8}`,
+ SCROLL: `scroll${EVENT_KEY$8}`,
+ LOAD_DATA_API: `load${EVENT_KEY$8}${DATA_API_KEY$6}`
+};
+const ClassName$8 = {
+ DROPDOWN_ITEM: 'dropdown-item',
+ ACTIVE: 'active'
+};
+const Selector$8 = {
+ DATA_SPY: '[data-spy="scroll"]',
+ NAV_LIST_GROUP: '.nav, .list-group',
+ NAV_LINKS: '.nav-link',
+ NAV_ITEMS: '.nav-item',
+ LIST_ITEMS: '.list-group-item',
+ DROPDOWN: '.dropdown',
+ DROPDOWN_TOGGLE: '.dropdown-toggle'
+};
+const OffsetMethod = {
+ OFFSET: 'offset',
+ POSITION: 'position'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+};
+
+class ScrollSpy {
+ constructor(element, config) {
+ this._element = element;
+ this._scrollElement = element.tagName === 'BODY' ? window : element;
+ this._config = this._getConfig(config);
+ this._selector = `${this._config.target} ${Selector$8.NAV_LINKS},` + `${this._config.target} ${Selector$8.LIST_ITEMS},` + `${this._config.target} .${ClassName$8.DROPDOWN_ITEM}`;
+ this._offsets = [];
+ this._targets = [];
+ this._activeTarget = null;
+ this._scrollHeight = 0;
+ EventHandler.on(this._scrollElement, Event$9.SCROLL, event => this._process(event));
+ this.refresh();
+
+ this._process();
+
+ Data.setData(element, DATA_KEY$8, this);
+ } // Getters
+
+
+ static get VERSION() {
+ return VERSION$8;
+ }
+
+ static get Default() {
+ return Default$6;
+ } // Public
+
+
+ refresh() {
+ const autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
+ const offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
+ const offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
+ this._offsets = [];
+ this._targets = [];
+ this._scrollHeight = this._getScrollHeight();
+ const targets = makeArray(SelectorEngine.find(this._selector));
+ targets.map(element => {
+ let target;
+ const targetSelector = getSelectorFromElement(element);
+
+ if (targetSelector) {
+ target = SelectorEngine.findOne(targetSelector);
+ }
+
+ if (target) {
+ const targetBCR = target.getBoundingClientRect();
+
+ if (targetBCR.width || targetBCR.height) {
+ return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector];
+ }
+ }
+
+ return null;
+ }).filter(item => item).sort((a, b) => a[0] - b[0]).forEach(item => {
+ this._offsets.push(item[0]);
+
+ this._targets.push(item[1]);
+ });
+ }
+
+ dispose() {
+ 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;
+ } // Private
+
+
+ _getConfig(config) {
+ config = _extends({}, Default$6, typeof config === 'object' && config ? config : {});
+
+ if (typeof config.target !== 'string') {
+ let id = config.target.id;
+
+ if (!id) {
+ id = getUID(NAME$8);
+ config.target.id = id;
+ }
+
+ config.target = `#${id}`;
+ }
+
+ typeCheckConfig(NAME$8, config, DefaultType$6);
+ return config;
+ }
+
+ _getScrollTop() {
+ return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;
+ }
+
+ _getScrollHeight() {
+ return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
+ }
+
+ _getOffsetHeight() {
+ return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
+ }
+
+ _process() {
+ const scrollTop = this._getScrollTop() + this._config.offset;
+
+ const scrollHeight = this._getScrollHeight();
+
+ const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
+
+ if (this._scrollHeight !== scrollHeight) {
+ this.refresh();
+ }
+
+ if (scrollTop >= maxScroll) {
+ const target = this._targets[this._targets.length - 1];
+
+ if (this._activeTarget !== target) {
+ this._activate(target);
+ }
+
+ return;
+ }
+
+ if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
+ this._activeTarget = null;
+
+ this._clear();
+
+ return;
+ }
+
+ const offsetLength = this._offsets.length;
+
+ for (let i = offsetLength; i--;) {
+ const isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
+
+ if (isActiveTarget) {
+ this._activate(this._targets[i]);
+ }
+ }
+ }
+
+ _activate(target) {
+ this._activeTarget = target;
+
+ this._clear();
+
+ const queries = this._selector.split(',').map(selector => `${selector}[data-target="${target}"],${selector}[href="${target}"]`);
+
+ const link = SelectorEngine.findOne(queries.join(','));
+
+ if (link.classList.contains(ClassName$8.DROPDOWN_ITEM)) {
+ SelectorEngine.findOne(Selector$8.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector$8.DROPDOWN)).classList.add(ClassName$8.ACTIVE);
+ link.classList.add(ClassName$8.ACTIVE);
+ } else {
+ // Set triggered link as active
+ link.classList.add(ClassName$8.ACTIVE);
+ SelectorEngine.parents(link, Selector$8.NAV_LIST_GROUP).forEach(listGroup => {
+ // Set triggered links parents as active
+ // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
+ SelectorEngine.prev(listGroup, `${Selector$8.NAV_LINKS}, ${Selector$8.LIST_ITEMS}`).forEach(item => item.classList.add(ClassName$8.ACTIVE)); // Handle special case when .nav-link is inside .nav-item
+
+ SelectorEngine.prev(listGroup, Selector$8.NAV_ITEMS).forEach(navItem => {
+ SelectorEngine.children(navItem, Selector$8.NAV_LINKS).forEach(item => item.classList.add(ClassName$8.ACTIVE));
+ });
+ });
+ }
+
+ EventHandler.trigger(this._scrollElement, Event$9.ACTIVATE, {
+ relatedTarget: target
+ });
+ }
+
+ _clear() {
+ makeArray(SelectorEngine.find(this._selector)).filter(node => node.classList.contains(ClassName$8.ACTIVE)).forEach(node => node.classList.remove(ClassName$8.ACTIVE));
+ } // Static
+
+
+ static _jQueryInterface(config) {
+ return this.each(function () {
+ let data = Data.getData(this, DATA_KEY$8);
+
+ const _config = typeof config === 'object' && config;
+
+ if (!data) {
+ data = new ScrollSpy(this, _config);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError(`No method named "${config}"`);
+ }
+
+ data[config]();
+ }
+ });
+ }
+
+ static _getInstance(element) {
+ return Data.getData(element, DATA_KEY$8);
+ }
+
+}
+/**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+EventHandler.on(window, Event$9.LOAD_DATA_API, () => {
+ makeArray(SelectorEngine.find(Selector$8.DATA_SPY)).forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)));
+});
+/**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ */
+
+if (typeof jQuery !== 'undefined') {
+ const JQUERY_NO_CONFLICT = jQuery.fn[NAME$8];
+ jQuery.fn[NAME$8] = ScrollSpy._jQueryInterface;
+ jQuery.fn[NAME$8].Constructor = ScrollSpy;
+
+ jQuery.fn[NAME$8].noConflict = () => {
+ jQuery.fn[NAME$8] = JQUERY_NO_CONFLICT;
+ return ScrollSpy._jQueryInterface;
+ };
+}
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.3.1): tab.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+/**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+const NAME$9 = 'tab';
+const VERSION$9 = '4.3.1';
+const DATA_KEY$9 = 'bs.tab';
+const EVENT_KEY$9 = `.${DATA_KEY$9}`;
+const DATA_API_KEY$7 = '.data-api';
+const Event$a = {
+ HIDE: `hide${EVENT_KEY$9}`,
+ HIDDEN: `hidden${EVENT_KEY$9}`,
+ SHOW: `show${EVENT_KEY$9}`,
+ SHOWN: `shown${EVENT_KEY$9}`,
+ CLICK_DATA_API: `click${EVENT_KEY$9}${DATA_API_KEY$7}`
+};
+const ClassName$9 = {
+ DROPDOWN_MENU: 'dropdown-menu',
+ ACTIVE: 'active',
+ DISABLED: 'disabled',
+ FADE: 'fade',
+ SHOW: 'show'
+};
+const Selector$9 = {
+ DROPDOWN: '.dropdown',
+ NAV_LIST_GROUP: '.nav, .list-group',
+ ACTIVE: '.active',
+ ACTIVE_UL: ':scope > li > .active',
+ DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
+ DROPDOWN_TOGGLE: '.dropdown-toggle',
+ DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+};
+
+class Tab {
+ constructor(element) {
+ this._element = element;
+ Data.setData(this._element, DATA_KEY$9, this);
+ } // Getters
+
+
+ static get VERSION() {
+ return VERSION$9;
+ } // Public
+
+
+ show() {
+ if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && this._element.classList.contains(ClassName$9.ACTIVE) || this._element.classList.contains(ClassName$9.DISABLED)) {
+ return;
+ }
+
+ let target;
+ let previous;
+ const listElement = SelectorEngine.closest(this._element, Selector$9.NAV_LIST_GROUP);
+ const selector = getSelectorFromElement(this._element);
+
+ if (listElement) {
+ const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector$9.ACTIVE_UL : Selector$9.ACTIVE;
+ previous = makeArray(SelectorEngine.find(itemSelector, listElement));
+ previous = previous[previous.length - 1];
+ }
+
+ let hideEvent = null;
+
+ if (previous) {
+ hideEvent = EventHandler.trigger(previous, Event$a.HIDE, {
+ relatedTarget: this._element
+ });
+ }
+
+ const showEvent = EventHandler.trigger(this._element, Event$a.SHOW, {
+ relatedTarget: previous
+ });
+
+ if (showEvent.defaultPrevented || hideEvent !== null && hideEvent.defaultPrevented) {
+ return;
+ }
+
+ if (selector) {
+ target = SelectorEngine.findOne(selector);
+ }
+
+ this._activate(this._element, listElement);
+
+ const complete = () => {
+ EventHandler.trigger(previous, Event$a.HIDDEN, {
+ relatedTarget: this._element
+ });
+ EventHandler.trigger(this._element, Event$a.SHOWN, {
+ relatedTarget: previous
+ });
+ };
+
+ if (target) {
+ this._activate(target, target.parentNode, complete);
+ } else {
+ complete();
+ }
+ }
+
+ dispose() {
+ Data.removeData(this._element, DATA_KEY$9);
+ this._element = null;
+ } // Private
+
+
+ _activate(element, container, callback) {
+ const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ? SelectorEngine.find(Selector$9.ACTIVE_UL, container) : SelectorEngine.children(container, Selector$9.ACTIVE);
+ const active = activeElements[0];
+ const isTransitioning = callback && active && active.classList.contains(ClassName$9.FADE);
+
+ const complete = () => this._transitionComplete(element, active, callback);
+
+ if (active && isTransitioning) {
+ const transitionDuration = getTransitionDurationFromElement(active);
+ active.classList.remove(ClassName$9.SHOW);
+ EventHandler.one(active, TRANSITION_END, complete);
+ emulateTransitionEnd(active, transitionDuration);
+ } else {
+ complete();
+ }
+ }
+
+ _transitionComplete(element, active, callback) {
+ if (active) {
+ active.classList.remove(ClassName$9.ACTIVE);
+ const dropdownChild = SelectorEngine.findOne(Selector$9.DROPDOWN_ACTIVE_CHILD, active.parentNode);
+
+ if (dropdownChild) {
+ dropdownChild.classList.remove(ClassName$9.ACTIVE);
+ }
+
+ if (active.getAttribute('role') === 'tab') {
+ active.setAttribute('aria-selected', false);
+ }
+ }
+
+ element.classList.add(ClassName$9.ACTIVE);
+
+ if (element.getAttribute('role') === 'tab') {
+ element.setAttribute('aria-selected', true);
+ }
+
+ reflow(element);
+
+ if (element.classList.contains(ClassName$9.FADE)) {
+ element.classList.add(ClassName$9.SHOW);
+ }
+
+ if (element.parentNode && element.parentNode.classList.contains(ClassName$9.DROPDOWN_MENU)) {
+ const dropdownElement = SelectorEngine.closest(element, Selector$9.DROPDOWN);
+
+ if (dropdownElement) {
+ makeArray(SelectorEngine.find(Selector$9.DROPDOWN_TOGGLE)).forEach(dropdown => dropdown.classList.add(ClassName$9.ACTIVE));
+ }
+
+ element.setAttribute('aria-expanded', true);
+ }
+
+ if (callback) {
+ callback();
+ }
+ } // Static
+
+
+ static _jQueryInterface(config) {
+ return this.each(function () {
+ const data = Data.getData(this, DATA_KEY$9) || new Tab(this);
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError(`No method named "${config}"`);
+ }
+
+ data[config]();
+ }
+ });
+ }
+
+ static _getInstance(element) {
+ return Data.getData(element, DATA_KEY$9);
+ }
+
+}
+/**
+ * ------------------------------------------------------------------------
+ * Data Api implementation
+ * ------------------------------------------------------------------------
+ */
+
+
+EventHandler.on(document, Event$a.CLICK_DATA_API, Selector$9.DATA_TOGGLE, function (event) {
+ event.preventDefault();
+ const data = Data.getData(this, DATA_KEY$9) || new Tab(this);
+ data.show();
+});
+/**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .tab to jQuery only if jQuery is present
+ */
+
+if (typeof jQuery !== 'undefined') {
+ const JQUERY_NO_CONFLICT = jQuery.fn[NAME$9];
+ jQuery.fn[NAME$9] = Tab._jQueryInterface;
+ jQuery.fn[NAME$9].Constructor = Tab;
+
+ jQuery.fn[NAME$9].noConflict = () => {
+ jQuery.fn[NAME$9] = JQUERY_NO_CONFLICT;
+ return Tab._jQueryInterface;
+ };
+}
+
+/**
+ * ------------------------------------------------------------------------
+ * Constants
+ * ------------------------------------------------------------------------
+ */
+
+const NAME$a = 'toast';
+const VERSION$a = '4.3.1';
+const DATA_KEY$a = 'bs.toast';
+const EVENT_KEY$a = `.${DATA_KEY$a}`;
+const Event$b = {
+ CLICK_DISMISS: `click.dismiss${EVENT_KEY$a}`,
+ HIDE: `hide${EVENT_KEY$a}`,
+ HIDDEN: `hidden${EVENT_KEY$a}`,
+ SHOW: `show${EVENT_KEY$a}`,
+ SHOWN: `shown${EVENT_KEY$a}`
+};
+const ClassName$a = {
+ FADE: 'fade',
+ HIDE: 'hide',
+ SHOW: 'show',
+ SHOWING: 'showing'
+};
+const DefaultType$7 = {
+ animation: 'boolean',
+ autohide: 'boolean',
+ delay: 'number'
+};
+const Default$7 = {
+ animation: true,
+ autohide: true,
+ delay: 500
+};
+const Selector$a = {
+ DATA_DISMISS: '[data-dismiss="toast"]'
+ /**
+ * ------------------------------------------------------------------------
+ * Class Definition
+ * ------------------------------------------------------------------------
+ */
+
+};
+
+class Toast {
+ constructor(element, config) {
+ this._element = element;
+ this._config = this._getConfig(config);
+ this._timeout = null;
+
+ this._setListeners();
+
+ Data.setData(element, DATA_KEY$a, this);
+ } // Getters
+
+
+ static get VERSION() {
+ return VERSION$a;
+ }
+
+ static get DefaultType() {
+ return DefaultType$7;
+ }
+
+ static get Default() {
+ return Default$7;
+ } // Public
+
+
+ show() {
+ EventHandler.trigger(this._element, Event$b.SHOW);
+
+ if (this._config.animation) {
+ this._element.classList.add(ClassName$a.FADE);
+ }
+
+ const complete = () => {
+ this._element.classList.remove(ClassName$a.SHOWING);
+
+ this._element.classList.add(ClassName$a.SHOW);
+
+ EventHandler.trigger(this._element, Event$b.SHOWN);
+
+ if (this._config.autohide) {
+ this.hide();
+ }
+ };
+
+ this._element.classList.remove(ClassName$a.HIDE);
+
+ this._element.classList.add(ClassName$a.SHOWING);
+
+ if (this._config.animation) {
+ const transitionDuration = getTransitionDurationFromElement(this._element);
+ EventHandler.one(this._element, TRANSITION_END, complete);
+ emulateTransitionEnd(this._element, transitionDuration);
+ } else {
+ complete();
+ }
+ }
+
+ hide(withoutTimeout) {
+ if (!this._element.classList.contains(ClassName$a.SHOW)) {
+ return;
+ }
+
+ EventHandler.trigger(this._element, Event$b.HIDE);
+
+ if (withoutTimeout) {
+ this._close();
+ } else {
+ this._timeout = setTimeout(() => {
+ this._close();
+ }, this._config.delay);
+ }
+ }
+
+ dispose() {
+ clearTimeout(this._timeout);
+ this._timeout = null;
+
+ if (this._element.classList.contains(ClassName$a.SHOW)) {
+ this._element.classList.remove(ClassName$a.SHOW);
+ }
+
+ EventHandler.off(this._element, Event$b.CLICK_DISMISS);
+ Data.removeData(this._element, DATA_KEY$a);
+ this._element = null;
+ this._config = null;
+ } // Private
+
+
+ _getConfig(config) {
+ config = _extends({}, Default$7, Manipulator.getDataAttributes(this._element), typeof config === 'object' && config ? config : {});
+ typeCheckConfig(NAME$a, config, this.constructor.DefaultType);
+ return config;
+ }
+
+ _setListeners() {
+ EventHandler.on(this._element, Event$b.CLICK_DISMISS, Selector$a.DATA_DISMISS, () => this.hide(true));
+ }
+
+ _close() {
+ const complete = () => {
+ this._element.classList.add(ClassName$a.HIDE);
+
+ EventHandler.trigger(this._element, Event$b.HIDDEN);
+ };
+
+ this._element.classList.remove(ClassName$a.SHOW);
+
+ if (this._config.animation) {
+ const transitionDuration = getTransitionDurationFromElement(this._element);
+ EventHandler.one(this._element, TRANSITION_END, complete);
+ emulateTransitionEnd(this._element, transitionDuration);
+ } else {
+ complete();
+ }
+ } // Static
+
+
+ static _jQueryInterface(config) {
+ return this.each(function () {
+ let data = Data.getData(this, DATA_KEY$a);
+
+ const _config = typeof config === 'object' && config;
+
+ if (!data) {
+ data = new Toast(this, _config);
+ }
+
+ if (typeof config === 'string') {
+ if (typeof data[config] === 'undefined') {
+ throw new TypeError(`No method named "${config}"`);
+ }
+
+ data[config](this);
+ }
+ });
+ }
+
+ static _getInstance(element) {
+ return Data.getData(element, DATA_KEY$a);
+ }
+
+}
+/**
+ * ------------------------------------------------------------------------
+ * jQuery
+ * ------------------------------------------------------------------------
+ * add .toast to jQuery only if jQuery is present
+ */
+
+
+if (typeof jQuery !== 'undefined') {
+ const JQUERY_NO_CONFLICT = jQuery.fn[NAME$a];
+ jQuery.fn[NAME$a] = Toast._jQueryInterface;
+ jQuery.fn[NAME$a].Constructor = Toast;
+
+ jQuery.fn[NAME$a].noConflict = () => {
+ jQuery.fn[NAME$a] = JQUERY_NO_CONFLICT;
+ return Toast._jQueryInterface;
+ };
+}
+
+/**
+ * --------------------------------------------------------------------------
+ * Bootstrap (v4.3.1): index.esm.js
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * --------------------------------------------------------------------------
+ */
+
+export { Alert, Button, Carousel, Collapse, Dropdown, Modal, Popover, ScrollSpy, Tab, Toast, Tooltip };
+//# sourceMappingURL=bootstrap.esm.js.map
diff --git a/dist/js/bootstrap.esm.js.map b/dist/js/bootstrap.esm.js.map
new file mode 100644
index 0000000000..b77bc6461b
--- /dev/null
+++ b/dist/js/bootstrap.esm.js.map
@@ -0,0 +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/eventHandler.js","../../js/src/dom/selectorEngine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.esm.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n 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 makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/**\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 {\n getUID\n} from '../util/index'\n\n/* istanbul ignore next */\nconst Polyfill = (() => {\n // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\n const 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\n let find = Element.prototype.querySelectorAll\n let findOne = Element.prototype.querySelector\n\n const scopeSelectorRegex = /:scope\\b/\n const supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n })()\n\n if (!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\n return {\n defaultPreventedPreservedOnDispatch,\n find,\n findOne\n }\n})()\n\nexport default Polyfill\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from '../util/index'\nimport Polyfill from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidList = Object.keys(events)\n\n for (let i = 0; i < uidList.length; i++) {\n const uid = uidList[i]\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = 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 (!Polyfill.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/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Polyfill from './polyfill'\nimport {\n makeArray\n} from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst { find: findFn, findOne } = Polyfill\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 if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return element.closest(selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.add(ClassName.FOCUS)\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.remove(ClassName.FOCUS)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n makeArray\n} from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.esm.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","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","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Polyfill","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","find","Element","prototype","querySelectorAll","findOne","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","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","uidList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","evt","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","findFn","NODE_TEXT","SelectorEngine","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","constructor","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","TOOLTIP_ARROW","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","SHOWING","autohide","Toast","withoutTimeout","_close"],"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
new file mode 100644
index 0000000000..bb836fd9e9
--- /dev/null
+++ b/dist/js/bootstrap.esm.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v4.3.1 (https://getbootstrap.com/)
+ * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+import Popper from"popper.js";const MAX_UID=1e6,MILLISECONDS_MULTIPLIER=1e3,TRANSITION_END="transitionend",_window=window,jQuery=_window.jQuery,toType=e=>({}).toString.call(e).match(/\s([a-z]+)/i)[1].toLowerCase(),getUID=e=>{do{e+=~~(1e6*Math.random())}while(document.getElementById(e));return e},getSelectorFromElement=e=>{let t=e.getAttribute("data-target");if(!t||"#"===t){const n=e.getAttribute("href");t=n&&"#"!==n?n.trim():""}try{return document.querySelector(t)?t:null}catch(e){return null}},getTransitionDurationFromElement=e=>{if(!e)return 0;let t=window.getComputedStyle(e),n=t.transitionDuration,i=t.transitionDelay;const s=parseFloat(n),a=parseFloat(i);return s||a?(n=n.split(",")[0],i=i.split(",")[0],1e3*(parseFloat(n)+parseFloat(i))):0},triggerTransitionEnd=e=>{e.dispatchEvent(new Event(TRANSITION_END))},isElement=e=>(e[0]||e).nodeType,emulateTransitionEnd=(e,t)=>{let n=!1;const i=t+5;e.addEventListener(TRANSITION_END,function t(){n=!0,e.removeEventListener(TRANSITION_END,t)}),setTimeout(()=>{n||triggerTransitionEnd(e)},i)},typeCheckConfig=(e,t,n)=>{Object.keys(n).forEach(i=>{const s=n[i],a=t[i],o=a&&isElement(a)?"element":toType(a);if(!new RegExp(s).test(o))throw new Error(`${e.toUpperCase()}: `+`Option "${i}" provided type "${o}" `+`but expected type "${s}".`)})},makeArray=e=>e?[].slice.call(e):[],isVisible=e=>!!e&&(!!(e.style&&e.parentNode&&e.parentNode.style)&&("none"!==e.style.display&&"none"!==e.parentNode.style.display&&"hidden"!==e.style.visibility)),findShadowRoot=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?findShadowRoot(e.parentNode):null},noop=()=>(function(){}),reflow=e=>e.offsetHeight,mapData=(()=>{const e={};let t=1;return{set(n,i,s){void 0===n.key&&(n.key={key:i,id:t},t++),e[n.key.id]=s},get(t,n){if(!t||void 0===t.key)return null;const i=t.key;return i.key===n?e[i.id]:null},delete(t,n){if(void 0===t.key)return;const i=t.key;i.key===n&&(delete e[i.id],delete t.key)}}})(),Data={setData(e,t,n){mapData.set(e,t,n)},getData:(e,t)=>mapData.get(e,t),removeData(e,t){mapData.delete(e,t)}},Polyfill=(()=>{const e=(()=>{const e=new CustomEvent("Bootstrap",{cancelable:!0}),t=document.createElement("div");return t.addEventListener("Bootstrap",()=>null),e.preventDefault(),t.dispatchEvent(e),e.defaultPrevented})();let t=Element.prototype.querySelectorAll,n=Element.prototype.querySelector;const i=/:scope\b/;return(()=>{const e=document.createElement("div");try{e.querySelectorAll(":scope *")}catch(e){return!1}return!0})()||(t=function(e){if(!i.test(e))return this.querySelectorAll(e);const t=Boolean(this.id);t||(this.id=getUID("scope"));let n=null;try{e=e.replace(i,`#${this.id}`),n=this.querySelectorAll(e)}finally{t||this.removeAttribute("id")}return n},n=function(e){if(!i.test(e))return this.querySelector(e);const n=t.call(this,e);return void 0!==n[0]?n[0]:null}),{defaultPreventedPreservedOnDispatch:e,find:t,findOne:n}})(),namespaceRegex=/[^.]*(?=\..*)\.|.*/,stripNameRegex=/\..*/,keyEventRegex=/^key/,stripUidRegex=/::\d+$/,eventRegistry={};let uidEvent=1;const 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){const 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(s){const a=e.querySelectorAll(t);for(let t=s.target;t&&t!==this;t=t.parentNode)for(let o=a.length;o--;)if(a[o]===t)return fixEvent(s,t),i.oneOff&&EventHandler.off(e,s.type,n),n.apply(t,[s]);return null}}function findHandler(e,t,n){void 0===n&&(n=null);const i=Object.keys(e);for(let s=0;s<i.length;s++){const a=i[s],o=e[a];if(o.originalHandler===t&&o.delegationSelector===n)return e[a]}return null}function normalizeParams(e,t,n){const i="string"==typeof t,s=i?n:t;let a=e.replace(stripNameRegex,"");const o=customEvents[a];return o&&(a=o),nativeEvents.indexOf(a)>-1||(a=e),[i,s,a]}function addHandler(e,t,n,i,s){if("string"!=typeof t||!e)return;n||(n=i,i=null);const a=normalizeParams(t,n,i),o=a[0],r=a[1],l=a[2],c=getEvent(e),E=c[l]||(c[l]={}),h=findHandler(E,r,o?n:null);if(h)return void(h.oneOff=h.oneOff&&s);const d=getUidEvent(r,t.replace(namespaceRegex,"")),_=o?bootstrapDelegationHandler(e,n,i):bootstrapHandler(e,n);_.delegationSelector=o?n:null,_.originalHandler=r,_.oneOff=s,_.uidEvent=d,E[d]=_,e.addEventListener(l,_,o)}function removeHandler(e,t,n,i,s){const a=findHandler(t[n],i,s);null!==a&&(e.removeEventListener(n,a,Boolean(s)),delete t[n][a.uidEvent])}function removeNamespacedHandlers(e,t,n,i){const s=t[n]||{};Object.keys(s).forEach(a=>{if(a.indexOf(i)>-1){const i=s[a];removeHandler(e,t,n,i.originalHandler,i.delegationSelector)}})}const EventHandler={on(e,t,n,i){addHandler(e,t,n,i,!1)},one(e,t,n,i){addHandler(e,t,n,i,!0)},off(e,t,n,i){if("string"!=typeof t||!e)return;const s=normalizeParams(t,n,i),a=s[0],o=s[1],r=s[2],l=r!==t,c=getEvent(e),E="."===t.charAt(0);if(void 0!==o){if(!c||!c[r])return;return void removeHandler(e,c,r,o,a?n:null)}E&&Object.keys(c).forEach(n=>{removeNamespacedHandlers(e,c,n,t.substr(1))});const h=c[r]||{};Object.keys(h).forEach(n=>{const i=n.replace(stripUidRegex,"");if(!l||t.indexOf(i)>-1){const t=h[n];removeHandler(e,c,r,t.originalHandler,t.delegationSelector)}})},trigger(e,t,n){if("string"!=typeof t||!e)return null;const i=t.replace(stripNameRegex,""),s=t!==i,a=nativeEvents.indexOf(i)>-1;let o,r=!0,l=!0,c=!1,E=null;return s&&void 0!==jQuery&&(o=jQuery.Event(t,n),jQuery(e).trigger(o),r=!o.isPropagationStopped(),l=!o.isImmediatePropagationStopped(),c=o.isDefaultPrevented()),a?(E=document.createEvent("HTMLEvents")).initEvent(i,r,!0):E=new CustomEvent(t,{bubbles:r,cancelable:!0}),void 0!==n&&Object.keys(n).forEach(e=>{Object.defineProperty(E,e,{get:()=>n[e]})}),c&&(E.preventDefault(),Polyfill.defaultPreventedPreservedOnDispatch||Object.defineProperty(E,"defaultPrevented",{get:()=>!0})),l&&e.dispatchEvent(E),E.defaultPrevented&&void 0!==o&&o.preventDefault(),E}},findFn=Polyfill.find,findOne=Polyfill.findOne,NODE_TEXT=3,SelectorEngine={matches:(e,t)=>e.matches(t),find:(e,t)=>(void 0===t&&(t=document.documentElement),"string"!=typeof e?null:findFn.call(t,e)),findOne:(e,t)=>(void 0===t&&(t=document.documentElement),"string"!=typeof e?null:findOne.call(t,e)),children(e,t){if("string"!=typeof t)return null;return makeArray(e.children).filter(e=>this.matches(e,t))},parents(e,t){if("string"!=typeof t)return null;const n=[];let i=e.parentNode;for(;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,t)&&n.push(i),i=i.parentNode;return n},closest:(e,t)=>"string"!=typeof t?null:e.closest(t),prev(e,t){if("string"!=typeof t)return null;const n=[];let i=e.previousSibling;for(;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,t)&&n.push(i),i=i.previousSibling;return n}},NAME="alert",VERSION="4.3.1",DATA_KEY="bs.alert",EVENT_KEY=`.${DATA_KEY}`,DATA_API_KEY=".data-api",Selector={DISMISS:'[data-dismiss="alert"]'},Event$1={CLOSE:`close${EVENT_KEY}`,CLOSED:`closed${EVENT_KEY}`,CLICK_DATA_API:`click${EVENT_KEY}.data-api`},ClassName={ALERT:"alert",FADE:"fade",SHOW:"show"};class Alert{constructor(e){this._element=e,this._element&&Data.setData(e,DATA_KEY,this)}static get VERSION(){return VERSION}close(e){let t=this._element;e&&(t=this._getRootElement(e));const n=this._triggerCloseEvent(t);null===n||n.defaultPrevented||this._removeElement(t)}dispose(){Data.removeData(this._element,DATA_KEY),this._element=null}_getRootElement(e){const t=getSelectorFromElement(e);let n=!1;return t&&(n=SelectorEngine.findOne(t)),n||(n=SelectorEngine.closest(e,`.${ClassName.ALERT}`)),n}_triggerCloseEvent(e){return EventHandler.trigger(e,Event$1.CLOSE)}_removeElement(e){if(e.classList.remove(ClassName.SHOW),!e.classList.contains(ClassName.FADE))return void this._destroyElement(e);const t=getTransitionDurationFromElement(e);EventHandler.one(e,TRANSITION_END,t=>this._destroyElement(e,t)),emulateTransitionEnd(e,t)}_destroyElement(e){e.parentNode&&e.parentNode.removeChild(e),EventHandler.trigger(e,Event$1.CLOSED)}static _jQueryInterface(e){return this.each(function(){let t=Data.getData(this,DATA_KEY);t||(t=new Alert(this)),"close"===e&&t[e](this)})}static _handleDismiss(e){return function(t){t&&t.preventDefault(),e.close(this)}}static _getInstance(e){return Data.getData(e,DATA_KEY)}}if(EventHandler.on(document,Event$1.CLICK_DATA_API,Selector.DISMISS,Alert._handleDismiss(new Alert)),void 0!==jQuery){const e=jQuery.fn.alert;jQuery.fn.alert=Alert._jQueryInterface,jQuery.fn.alert.Constructor=Alert,jQuery.fn.alert.noConflict=(()=>(jQuery.fn.alert=e,Alert._jQueryInterface))}const NAME$1="button",VERSION$1="4.3.1",DATA_KEY$1="bs.button",EVENT_KEY$1=`.${DATA_KEY$1}`,DATA_API_KEY$1=".data-api",ClassName$1={ACTIVE:"active",BUTTON:"btn",FOCUS:"focus"},Selector$1={DATA_TOGGLE_CARROT:'[data-toggle^="button"]',DATA_TOGGLE:'[data-toggle="buttons"]',INPUT:'input:not([type="hidden"])',ACTIVE:".active",BUTTON:".btn"},Event$2={CLICK_DATA_API:`click${EVENT_KEY$1}.data-api`,FOCUS_DATA_API:`focus${EVENT_KEY$1}.data-api`,BLUR_DATA_API:`blur${EVENT_KEY$1}.data-api`};class Button{constructor(e){this._element=e,Data.setData(e,DATA_KEY$1,this)}static get VERSION(){return VERSION$1}toggle(){let e=!0,t=!0;const n=SelectorEngine.closest(this._element,Selector$1.DATA_TOGGLE);if(n){const i=SelectorEngine.findOne(Selector$1.INPUT,this._element);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(ClassName$1.ACTIVE))e=!1;else{const e=SelectorEngine.findOne(Selector$1.ACTIVE,n);e&&e.classList.remove(ClassName$1.ACTIVE)}if(e){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(ClassName$1.ACTIVE),EventHandler.trigger(i,"change")}i.focus(),t=!1}}t&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(ClassName$1.ACTIVE)),e&&this._element.classList.toggle(ClassName$1.ACTIVE)}dispose(){Data.removeData(this._element,DATA_KEY$1),this._element=null}static _jQueryInterface(e){return this.each(function(){let t=Data.getData(this,DATA_KEY$1);t||(t=new Button(this)),"toggle"===e&&t[e]()})}static _getInstance(e){return Data.getData(e,DATA_KEY$1)}}if(EventHandler.on(document,Event$2.CLICK_DATA_API,Selector$1.DATA_TOGGLE_CARROT,e=>{e.preventDefault();let t=e.target;t.classList.contains(ClassName$1.BUTTON)||(t=SelectorEngine.closest(t,Selector$1.BUTTON));let n=Data.getData(t,DATA_KEY$1);n||(n=new Button(t),Data.setData(t,DATA_KEY$1,n)),n.toggle()}),EventHandler.on(document,Event$2.FOCUS_DATA_API,Selector$1.DATA_TOGGLE_CARROT,e=>{SelectorEngine.closest(e.target,Selector$1.BUTTON).classList.add(ClassName$1.FOCUS)}),EventHandler.on(document,Event$2.BLUR_DATA_API,Selector$1.DATA_TOGGLE_CARROT,e=>{SelectorEngine.closest(e.target,Selector$1.BUTTON).classList.remove(ClassName$1.FOCUS)}),void 0!==jQuery){const e=jQuery.fn.button;jQuery.fn.button=Button._jQueryInterface,jQuery.fn.button.Constructor=Button,jQuery.fn.button.noConflict=(()=>(jQuery.fn.button=e,Button._jQueryInterface))}function _extends(){return(_extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e}).apply(this,arguments)}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,e=>e.toLowerCase())}const Manipulator={setDataAttribute(e,t,n){e.setAttribute(`data-${normalizeDataKey(t)}`,n)},removeDataAttribute(e,t){e.removeAttribute(`data-${normalizeDataKey(t)}`)},getDataAttributes(e){if(!e)return{};const t=_extends({},e.dataset);return Object.keys(t).forEach(e=>{t[e]=normalizeData(t[e])}),t},getDataAttribute:(e,t)=>normalizeData(e.getAttribute(`data-${normalizeDataKey(t)}`)),offset(e){const t=e.getBoundingClientRect();return{top:t.top+document.body.scrollTop,left:t.left+document.body.scrollLeft}},position:e=>({top:e.offsetTop,left:e.offsetLeft}),toggleClass(e,t){e&&(e.classList.contains(t)?e.classList.remove(t):e.classList.add(t))}},NAME$2="carousel",VERSION$2="4.3.1",DATA_KEY$2="bs.carousel",EVENT_KEY$2=`.${DATA_KEY$2}`,DATA_API_KEY$2=".data-api",ARROW_LEFT_KEYCODE=37,ARROW_RIGHT_KEYCODE=39,TOUCHEVENT_COMPAT_WAIT=500,SWIPE_THRESHOLD=40,Default={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},DefaultType={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Direction={NEXT:"next",PREV:"prev",LEFT:"left",RIGHT:"right"},Event$3={SLIDE:`slide${EVENT_KEY$2}`,SLID:`slid${EVENT_KEY$2}`,KEYDOWN:`keydown${EVENT_KEY$2}`,MOUSEENTER:`mouseenter${EVENT_KEY$2}`,MOUSELEAVE:`mouseleave${EVENT_KEY$2}`,TOUCHSTART:`touchstart${EVENT_KEY$2}`,TOUCHMOVE:`touchmove${EVENT_KEY$2}`,TOUCHEND:`touchend${EVENT_KEY$2}`,POINTERDOWN:`pointerdown${EVENT_KEY$2}`,POINTERUP:`pointerup${EVENT_KEY$2}`,DRAG_START:`dragstart${EVENT_KEY$2}`,LOAD_DATA_API:`load${EVENT_KEY$2}.data-api`,CLICK_DATA_API:`click${EVENT_KEY$2}.data-api`},ClassName$2={CAROUSEL:"carousel",ACTIVE:"active",SLIDE:"slide",RIGHT:"carousel-item-right",LEFT:"carousel-item-left",NEXT:"carousel-item-next",PREV:"carousel-item-prev",ITEM:"carousel-item",POINTER_EVENT:"pointer-event"},Selector$2={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",ITEM_IMG:".carousel-item img",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},PointerType={TOUCH:"touch",PEN:"pen"};class Carousel{constructor(e,t){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(t),this._element=e,this._indicatorsElement=SelectorEngine.findOne(Selector$2.INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),Data.setData(e,DATA_KEY$2,this)}static get VERSION(){return VERSION$2}static get Default(){return Default}next(){this._isSliding||this._slide(Direction.NEXT)}nextWhenVisible(){!document.hidden&&isVisible(this._element)&&this.next()}prev(){this._isSliding||this._slide(Direction.PREV)}pause(e){e||(this._isPaused=!0),SelectorEngine.findOne(Selector$2.NEXT_PREV,this._element)&&(triggerTransitionEnd(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(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))}to(e){this._activeElement=SelectorEngine.findOne(Selector$2.ACTIVE_ITEM,this._element);const t=this._getItemIndex(this._activeElement);if(e>this._items.length-1||e<0)return;if(this._isSliding)return void EventHandler.one(this._element,Event$3.SLID,()=>this.to(e));if(t===e)return this.pause(),void this.cycle();const n=e>t?Direction.NEXT:Direction.PREV;this._slide(n,this._items[e])}dispose(){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}_getConfig(e){return e=_extends({},Default,e),typeCheckConfig(NAME$2,e,DefaultType),e}_handleSwipe(){const e=Math.abs(this.touchDeltaX);if(e<=SWIPE_THRESHOLD)return;const t=e/this.touchDeltaX;t>0&&this.prev(),t<0&&this.next()}_addEventListeners(){this._config.keyboard&&EventHandler.on(this._element,Event$3.KEYDOWN,e=>this._keydown(e)),"hover"===this._config.pause&&(EventHandler.on(this._element,Event$3.MOUSEENTER,e=>this.pause(e)),EventHandler.on(this._element,Event$3.MOUSELEAVE,e=>this.cycle(e))),this._config.touch&&this._addTouchEventListeners()}_addTouchEventListeners(){if(!this._touchSupported)return;const e=e=>{this._pointerEvent&&PointerType[e.pointerType.toUpperCase()]?this.touchStartX=e.clientX:this._pointerEvent||(this.touchStartX=e.touches[0].clientX)},t=e=>{e.touches&&e.touches.length>1?this.touchDeltaX=0:this.touchDeltaX=e.touches[0].clientX-this.touchStartX},n=e=>{this._pointerEvent&&PointerType[e.pointerType.toUpperCase()]&&(this.touchDeltaX=e.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(e=>this.cycle(e),TOUCHEVENT_COMPAT_WAIT+this._config.interval))};makeArray(SelectorEngine.find(Selector$2.ITEM_IMG,this._element)).forEach(e=>{EventHandler.on(e,Event$3.DRAG_START,e=>e.preventDefault())}),this._pointerEvent?(EventHandler.on(this._element,Event$3.POINTERDOWN,t=>e(t)),EventHandler.on(this._element,Event$3.POINTERUP,e=>n(e)),this._element.classList.add(ClassName$2.POINTER_EVENT)):(EventHandler.on(this._element,Event$3.TOUCHSTART,t=>e(t)),EventHandler.on(this._element,Event$3.TOUCHMOVE,e=>t(e)),EventHandler.on(this._element,Event$3.TOUCHEND,e=>n(e)))}_keydown(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()}}_getItemIndex(e){return this._items=e&&e.parentNode?makeArray(SelectorEngine.find(Selector$2.ITEM,e.parentNode)):[],this._items.indexOf(e)}_getItemByDirection(e,t){const n=e===Direction.NEXT,i=e===Direction.PREV,s=this._getItemIndex(t),a=this._items.length-1;if((i&&0===s||n&&s===a)&&!this._config.wrap)return t;const o=(s+(e===Direction.PREV?-1:1))%this._items.length;return-1===o?this._items[this._items.length-1]:this._items[o]}_triggerSlideEvent(e,t){const n=this._getItemIndex(e),i=this._getItemIndex(SelectorEngine.findOne(Selector$2.ACTIVE_ITEM,this._element));return EventHandler.trigger(this._element,Event$3.SLIDE,{relatedTarget:e,direction:t,from:i,to:n})}_setActiveIndicatorElement(e){if(this._indicatorsElement){const t=SelectorEngine.find(Selector$2.ACTIVE,this._indicatorsElement);for(let e=0;e<t.length;e++)t[e].classList.remove(ClassName$2.ACTIVE);const n=this._indicatorsElement.children[this._getItemIndex(e)];n&&n.classList.add(ClassName$2.ACTIVE)}}_slide(e,t){const n=SelectorEngine.findOne(Selector$2.ACTIVE_ITEM,this._element),i=this._getItemIndex(n),s=t||n&&this._getItemByDirection(e,n),a=this._getItemIndex(s),o=Boolean(this._interval);let r,l,c;if(e===Direction.NEXT?(r=ClassName$2.LEFT,l=ClassName$2.NEXT,c=Direction.LEFT):(r=ClassName$2.RIGHT,l=ClassName$2.PREV,c=Direction.RIGHT),s&&s.classList.contains(ClassName$2.ACTIVE))return void(this._isSliding=!1);if(!this._triggerSlideEvent(s,c).defaultPrevented&&n&&s){if(this._isSliding=!0,o&&this.pause(),this._setActiveIndicatorElement(s),this._element.classList.contains(ClassName$2.SLIDE)){s.classList.add(l),reflow(s),n.classList.add(r),s.classList.add(r);const e=parseInt(s.getAttribute("data-interval"),10);e?(this._config.defaultInterval=this._config.defaultInterval||this._config.interval,this._config.interval=e):this._config.interval=this._config.defaultInterval||this._config.interval;const t=getTransitionDurationFromElement(n);EventHandler.one(n,TRANSITION_END,()=>{s.classList.remove(r),s.classList.remove(l),s.classList.add(ClassName$2.ACTIVE),n.classList.remove(ClassName$2.ACTIVE),n.classList.remove(l),n.classList.remove(r),this._isSliding=!1,setTimeout(()=>{EventHandler.trigger(this._element,Event$3.SLID,{relatedTarget:s,direction:c,from:i,to:a})},0)}),emulateTransitionEnd(n,t)}else n.classList.remove(ClassName$2.ACTIVE),s.classList.add(ClassName$2.ACTIVE),this._isSliding=!1,EventHandler.trigger(this._element,Event$3.SLID,{relatedTarget:s,direction:c,from:i,to:a});o&&this.cycle()}}static _carouselInterface(e,t){let n=Data.getData(e,DATA_KEY$2),i=_extends({},Default,Manipulator.getDataAttributes(e));"object"==typeof t&&(i=_extends({},i,t));const s="string"==typeof t?t:i.slide;if(n||(n=new Carousel(e,i)),"number"==typeof t)n.to(t);else if("string"==typeof s){if(void 0===n[s])throw new TypeError(`No method named "${s}"`);n[s]()}else i.interval&&i.ride&&(n.pause(),n.cycle())}static _jQueryInterface(e){return this.each(function(){Carousel._carouselInterface(this,e)})}static _dataApiClickHandler(e){const t=getSelectorFromElement(this);if(!t)return;const n=SelectorEngine.findOne(t);if(!n||!n.classList.contains(ClassName$2.CAROUSEL))return;const i=_extends({},Manipulator.getDataAttributes(n),Manipulator.getDataAttributes(this)),s=this.getAttribute("data-slide-to");s&&(i.interval=!1),Carousel._carouselInterface(n,i),s&&Data.getData(n,DATA_KEY$2).to(s),e.preventDefault()}static _getInstance(e){return Data.getData(e,DATA_KEY$2)}}if(EventHandler.on(document,Event$3.CLICK_DATA_API,Selector$2.DATA_SLIDE,Carousel._dataApiClickHandler),EventHandler.on(window,Event$3.LOAD_DATA_API,()=>{const e=makeArray(SelectorEngine.find(Selector$2.DATA_RIDE));for(let t=0,n=e.length;t<n;t++)Carousel._carouselInterface(e[t],Data.getData(e[t],DATA_KEY$2))}),void 0!==jQuery){const e=jQuery.fn[NAME$2];jQuery.fn[NAME$2]=Carousel._jQueryInterface,jQuery.fn[NAME$2].Constructor=Carousel,jQuery.fn[NAME$2].noConflict=(()=>(jQuery.fn[NAME$2]=e,Carousel._jQueryInterface))}const NAME$3="collapse",VERSION$3="4.3.1",DATA_KEY$3="bs.collapse",EVENT_KEY$3=`.${DATA_KEY$3}`,DATA_API_KEY$3=".data-api",Default$1={toggle:!0,parent:""},DefaultType$1={toggle:"boolean",parent:"(string|element)"},Event$4={SHOW:`show${EVENT_KEY$3}`,SHOWN:`shown${EVENT_KEY$3}`,HIDE:`hide${EVENT_KEY$3}`,HIDDEN:`hidden${EVENT_KEY$3}`,CLICK_DATA_API:`click${EVENT_KEY$3}.data-api`},ClassName$3={SHOW:"show",COLLAPSE:"collapse",COLLAPSING:"collapsing",COLLAPSED:"collapsed"},Dimension={WIDTH:"width",HEIGHT:"height"},Selector$3={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'};class Collapse{constructor(e,t){this._isTransitioning=!1,this._element=e,this._config=this._getConfig(t),this._triggerArray=makeArray(SelectorEngine.find(`[data-toggle="collapse"][href="#${e.id}"],`+`[data-toggle="collapse"][data-target="#${e.id}"]`));const n=makeArray(SelectorEngine.find(Selector$3.DATA_TOGGLE));for(let t=0,i=n.length;t<i;t++){const i=n[t],s=getSelectorFromElement(i),a=makeArray(SelectorEngine.find(s)).filter(t=>t===e);null!==s&&a.length&&(this._selector=s,this._triggerArray.push(i))}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)}static get VERSION(){return VERSION$3}static get Default(){return Default$1}toggle(){this._element.classList.contains(ClassName$3.SHOW)?this.hide():this.show()}show(){if(this._isTransitioning||this._element.classList.contains(ClassName$3.SHOW))return;let e,t;this._parent&&0===(e=makeArray(SelectorEngine.find(Selector$3.ACTIVES,this._parent)).filter(e=>"string"==typeof this._config.parent?e.getAttribute("data-parent")===this._config.parent:e.classList.contains(ClassName$3.COLLAPSE))).length&&(e=null);const n=SelectorEngine.findOne(this._selector);if(e){const i=e.filter(e=>n!==e);if((t=i[0]?Data.getData(i[0],DATA_KEY$3):null)&&t._isTransitioning)return}if(EventHandler.trigger(this._element,Event$4.SHOW).defaultPrevented)return;e&&e.forEach(e=>{n!==e&&Collapse._collapseInterface(e,"hide"),t||Data.setData(e,DATA_KEY$3,null)});const i=this._getDimension();this._element.classList.remove(ClassName$3.COLLAPSE),this._element.classList.add(ClassName$3.COLLAPSING),this._element.style[i]=0,this._triggerArray.length&&this._triggerArray.forEach(e=>{e.classList.remove(ClassName$3.COLLAPSED),e.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);const s=`scroll${i[0].toUpperCase()+i.slice(1)}`,a=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,()=>{this._element.classList.remove(ClassName$3.COLLAPSING),this._element.classList.add(ClassName$3.COLLAPSE),this._element.classList.add(ClassName$3.SHOW),this._element.style[i]="",this.setTransitioning(!1),EventHandler.trigger(this._element,Event$4.SHOWN)}),emulateTransitionEnd(this._element,a),this._element.style[i]=`${this._element[s]}px`}hide(){if(this._isTransitioning||!this._element.classList.contains(ClassName$3.SHOW))return;if(EventHandler.trigger(this._element,Event$4.HIDE).defaultPrevented)return;const e=this._getDimension();this._element.style[e]=`${this._element.getBoundingClientRect()[e]}px`,reflow(this._element),this._element.classList.add(ClassName$3.COLLAPSING),this._element.classList.remove(ClassName$3.COLLAPSE),this._element.classList.remove(ClassName$3.SHOW);const t=this._triggerArray.length;if(t>0)for(let e=0;e<t;e++){const t=this._triggerArray[e],n=getSelectorFromElement(t);if(null!==n){SelectorEngine.findOne(n).classList.contains(ClassName$3.SHOW)||(t.classList.add(ClassName$3.COLLAPSED),t.setAttribute("aria-expanded",!1))}}this.setTransitioning(!0);this._element.style[e]="";const n=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,()=>{this.setTransitioning(!1),this._element.classList.remove(ClassName$3.COLLAPSING),this._element.classList.add(ClassName$3.COLLAPSE),EventHandler.trigger(this._element,Event$4.HIDDEN)}),emulateTransitionEnd(this._element,n)}setTransitioning(e){this._isTransitioning=e}dispose(){Data.removeData(this._element,DATA_KEY$3),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null}_getConfig(e){return(e=_extends({},Default$1,e)).toggle=Boolean(e.toggle),typeCheckConfig(NAME$3,e,DefaultType$1),e}_getDimension(){return this._element.classList.contains(Dimension.WIDTH)?Dimension.WIDTH:Dimension.HEIGHT}_getParent(){let e=this._config.parent;isElement(e)?void 0===e.jquery&&void 0===e[0]||(e=e[0]):e=SelectorEngine.findOne(e);const t=`[data-toggle="collapse"][data-parent="${e}"]`;return makeArray(SelectorEngine.find(t,e)).forEach(e=>{this._addAriaAndCollapsedClass(Collapse._getTargetFromElement(e),[e])}),e}_addAriaAndCollapsedClass(e,t){if(e){const n=e.classList.contains(ClassName$3.SHOW);t.length&&t.forEach(e=>{n?e.classList.remove(ClassName$3.COLLAPSED):e.classList.add(ClassName$3.COLLAPSED),e.setAttribute("aria-expanded",n)})}}static _getTargetFromElement(e){const t=getSelectorFromElement(e);return t?SelectorEngine.findOne(t):null}static _collapseInterface(e,t){let n=Data.getData(e,DATA_KEY$3);const i=_extends({},Default$1,Manipulator.getDataAttributes(e),"object"==typeof t&&t?t:{});if(!n&&i.toggle&&/show|hide/.test(t)&&(i.toggle=!1),n||(n=new Collapse(e,i)),"string"==typeof t){if(void 0===n[t])throw new TypeError(`No method named "${t}"`);n[t]()}}static _jQueryInterface(e){return this.each(function(){Collapse._collapseInterface(this,e)})}static _getInstance(e){return Data.getData(e,DATA_KEY$3)}}if(EventHandler.on(document,Event$4.CLICK_DATA_API,Selector$3.DATA_TOGGLE,function(e){"A"===e.target.tagName&&e.preventDefault();const t=Manipulator.getDataAttributes(this),n=getSelectorFromElement(this);makeArray(SelectorEngine.find(n)).forEach(e=>{const n=Data.getData(e,DATA_KEY$3);let i;n?(null===n._parent&&"string"==typeof t.parent&&(n._config.parent=t.parent,n._parent=n._getParent()),i="toggle"):i=t,Collapse._collapseInterface(e,i)})}),void 0!==jQuery){const e=jQuery.fn[NAME$3];jQuery.fn[NAME$3]=Collapse._jQueryInterface,jQuery.fn[NAME$3].Constructor=Collapse,jQuery.fn[NAME$3].noConflict=(()=>(jQuery.fn[NAME$3]=e,Collapse._jQueryInterface))}const NAME$4="dropdown",VERSION$4="4.3.1",DATA_KEY$4="bs.dropdown",EVENT_KEY$4=`.${DATA_KEY$4}`,DATA_API_KEY$4=".data-api",ESCAPE_KEYCODE=27,SPACE_KEYCODE=32,TAB_KEYCODE=9,ARROW_UP_KEYCODE=38,ARROW_DOWN_KEYCODE=40,RIGHT_MOUSE_BUTTON_WHICH=3,REGEXP_KEYDOWN=new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`),Event$5={HIDE:`hide${EVENT_KEY$4}`,HIDDEN:`hidden${EVENT_KEY$4}`,SHOW:`show${EVENT_KEY$4}`,SHOWN:`shown${EVENT_KEY$4}`,CLICK:`click${EVENT_KEY$4}`,CLICK_DATA_API:`click${EVENT_KEY$4}.data-api`,KEYDOWN_DATA_API:`keydown${EVENT_KEY$4}.data-api`,KEYUP_DATA_API:`keyup${EVENT_KEY$4}.data-api`},ClassName$4={DISABLED:"disabled",SHOW:"show",DROPUP:"dropup",DROPRIGHT:"dropright",DROPLEFT:"dropleft",MENURIGHT:"dropdown-menu-right",POSITION_STATIC:"position-static"},Selector$4={DATA_TOGGLE:'[data-toggle="dropdown"]',FORM_CHILD:".dropdown form",MENU:".dropdown-menu",NAVBAR_NAV:".navbar-nav",VISIBLE_ITEMS:".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)"},AttachmentMap={TOP:"top-start",TOPEND:"top-end",BOTTOM:"bottom-start",BOTTOMEND:"bottom-end",RIGHT:"right-start",RIGHTEND:"right-end",LEFT:"left-start",LEFTEND:"left-end"},Default$2={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},DefaultType$2={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"};class Dropdown{constructor(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)}static get VERSION(){return VERSION$4}static get Default(){return Default$2}static get DefaultType(){return DefaultType$2}toggle(){if(this._element.disabled||this._element.classList.contains(ClassName$4.DISABLED))return;const e=Dropdown._getParentFromElement(this._element),t=this._menu.classList.contains(ClassName$4.SHOW);if(Dropdown._clearMenus(),t)return;const n={relatedTarget:this._element};if(!EventHandler.trigger(e,Event$5.SHOW,n).defaultPrevented){if(!this._inNavbar){if(void 0===Popper)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=e:isElement(this._config.reference)&&(t=this._config.reference,void 0!==this._config.reference.jquery&&(t=this._config.reference[0])),"scrollParent"!==this._config.boundary&&e.classList.add(ClassName$4.POSITION_STATIC),this._popper=new Popper(t,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&!makeArray(SelectorEngine.closest(e,Selector$4.NAVBAR_NAV)).length&&makeArray(document.body.children).forEach(e=>EventHandler.on(e,"mouseover",null,noop())),this._element.focus(),this._element.setAttribute("aria-expanded",!0),Manipulator.toggleClass(this._menu,ClassName$4.SHOW),Manipulator.toggleClass(e,ClassName$4.SHOW),EventHandler.trigger(e,Event$5.SHOWN,n)}}show(){if(this._element.disabled||this._element.classList.contains(ClassName$4.DISABLED)||this._menu.classList.contains(ClassName$4.SHOW))return;const e=Dropdown._getParentFromElement(this._element),t={relatedTarget:this._element};EventHandler.trigger(e,Event$5.SHOW,t).defaultPrevented||(Manipulator.toggleClass(this._menu,ClassName$4.SHOW),Manipulator.toggleClass(e,ClassName$4.SHOW),EventHandler.trigger(e,Event$5.SHOWN,t))}hide(){if(this._element.disabled||this._element.classList.contains(ClassName$4.DISABLED)||!this._menu.classList.contains(ClassName$4.SHOW))return;const e=Dropdown._getParentFromElement(this._element),t={relatedTarget:this._element};EventHandler.trigger(e,Event$5.HIDE,t).defaultPrevented||(Manipulator.toggleClass(this._menu,ClassName$4.SHOW),Manipulator.toggleClass(e,ClassName$4.SHOW),EventHandler.trigger(e,Event$5.HIDDEN,t))}dispose(){Data.removeData(this._element,DATA_KEY$4),EventHandler.off(this._element,EVENT_KEY$4),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)}update(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()}_addEventListeners(){EventHandler.on(this._element,Event$5.CLICK,e=>{e.preventDefault(),e.stopPropagation(),this.toggle()})}_getConfig(e){return e=_extends({},this.constructor.Default,Manipulator.getDataAttributes(this._element),e),typeCheckConfig(NAME$4,e,this.constructor.DefaultType),e}_getMenuElement(){if(!this._menu){const e=Dropdown._getParentFromElement(this._element);e&&(this._menu=SelectorEngine.findOne(Selector$4.MENU,e))}return this._menu}_getPlacement(){const e=this._element.parentNode;let t=AttachmentMap.BOTTOM;return e.classList.contains(ClassName$4.DROPUP)?(t=AttachmentMap.TOP,this._menu.classList.contains(ClassName$4.MENURIGHT)&&(t=AttachmentMap.TOPEND)):e.classList.contains(ClassName$4.DROPRIGHT)?t=AttachmentMap.RIGHT:e.classList.contains(ClassName$4.DROPLEFT)?t=AttachmentMap.LEFT:this._menu.classList.contains(ClassName$4.MENURIGHT)&&(t=AttachmentMap.BOTTOMEND),t}_detectNavbar(){return Boolean(SelectorEngine.closest(this._element,".navbar"))}_getOffset(){const e={};return"function"==typeof this._config.offset?e.fn=(e=>(e.offsets=_extends({},e.offsets,this._config.offset(e.offsets,this._element)||{}),e)):e.offset=this._config.offset,e}_getPopperConfig(){const e={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(e.modifiers.applyStyle={enabled:!1}),e}static _dropdownInterface(e,t){let n=Data.getData(e,DATA_KEY$4);if(n||(n=new Dropdown(e,"object"==typeof t?t:null)),"string"==typeof t){if(void 0===n[t])throw new TypeError(`No method named "${t}"`);n[t]()}}static _jQueryInterface(e){return this.each(function(){Dropdown._dropdownInterface(this,e)})}static _clearMenus(e){if(e&&(e.which===RIGHT_MOUSE_BUTTON_WHICH||"keyup"===e.type&&e.which!==TAB_KEYCODE))return;const t=makeArray(SelectorEngine.find(Selector$4.DATA_TOGGLE));for(let n=0,i=t.length;n<i;n++){const i=Dropdown._getParentFromElement(t[n]),s=Data.getData(t[n],DATA_KEY$4),a={relatedTarget:t[n]};if(e&&"click"===e.type&&(a.clickEvent=e),!s)continue;const o=s._menu;i.classList.contains(ClassName$4.SHOW)&&(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&e.which===TAB_KEYCODE)&&i.contains(e.target)||EventHandler.trigger(i,Event$5.HIDE,a).defaultPrevented||("ontouchstart"in document.documentElement&&makeArray(document.body.children).forEach(e=>EventHandler.off(e,"mouseover",null,noop())),t[n].setAttribute("aria-expanded","false"),o.classList.remove(ClassName$4.SHOW),i.classList.remove(ClassName$4.SHOW),EventHandler.trigger(i,Event$5.HIDDEN,a)))}}static _getParentFromElement(e){let t;const n=getSelectorFromElement(e);return n&&(t=SelectorEngine.findOne(n)),t||e.parentNode}static _dataApiKeydownHandler(e){if(/input|textarea/i.test(e.target.tagName)?e.which===SPACE_KEYCODE||e.which!==ESCAPE_KEYCODE&&(e.which!==ARROW_DOWN_KEYCODE&&e.which!==ARROW_UP_KEYCODE||SelectorEngine.closest(e.target,Selector$4.MENU)):!REGEXP_KEYDOWN.test(e.which))return;if(e.preventDefault(),e.stopPropagation(),this.disabled||this.classList.contains(ClassName$4.DISABLED))return;const t=Dropdown._getParentFromElement(this),n=t.classList.contains(ClassName$4.SHOW);if(!n||n&&(e.which===ESCAPE_KEYCODE||e.which===SPACE_KEYCODE))return e.which===ESCAPE_KEYCODE&&EventHandler.trigger(SelectorEngine.findOne(Selector$4.DATA_TOGGLE,t),"focus"),void Dropdown._clearMenus();const i=makeArray(SelectorEngine.find(Selector$4.VISIBLE_ITEMS,t));if(!i.length)return;let s=i.indexOf(e.target);e.which===ARROW_UP_KEYCODE&&s>0&&s--,e.which===ARROW_DOWN_KEYCODE&&s<i.length-1&&s++,s<0&&(s=0),i[s].focus()}static _getInstance(e){return Data.getData(e,DATA_KEY$4)}}if(EventHandler.on(document,Event$5.KEYDOWN_DATA_API,Selector$4.DATA_TOGGLE,Dropdown._dataApiKeydownHandler),EventHandler.on(document,Event$5.KEYDOWN_DATA_API,Selector$4.MENU,Dropdown._dataApiKeydownHandler),EventHandler.on(document,Event$5.CLICK_DATA_API,Dropdown._clearMenus),EventHandler.on(document,Event$5.KEYUP_DATA_API,Dropdown._clearMenus),EventHandler.on(document,Event$5.CLICK_DATA_API,Selector$4.DATA_TOGGLE,function(e){e.preventDefault(),e.stopPropagation(),Dropdown._dropdownInterface(this,"toggle")}),EventHandler.on(document,Event$5.CLICK_DATA_API,Selector$4.FORM_CHILD,e=>e.stopPropagation()),void 0!==jQuery){const e=jQuery.fn[NAME$4];jQuery.fn[NAME$4]=Dropdown._jQueryInterface,jQuery.fn[NAME$4].Constructor=Dropdown,jQuery.fn[NAME$4].noConflict=(()=>(jQuery.fn[NAME$4]=e,Dropdown._jQueryInterface))}const NAME$5="modal",VERSION$5="4.3.1",DATA_KEY$5="bs.modal",EVENT_KEY$5=`.${DATA_KEY$5}`,DATA_API_KEY$5=".data-api",ESCAPE_KEYCODE$1=27,Default$3={backdrop:!0,keyboard:!0,focus:!0,show:!0},DefaultType$3={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Event$6={HIDE:`hide${EVENT_KEY$5}`,HIDDEN:`hidden${EVENT_KEY$5}`,SHOW:`show${EVENT_KEY$5}`,SHOWN:`shown${EVENT_KEY$5}`,FOCUSIN:`focusin${EVENT_KEY$5}`,RESIZE:`resize${EVENT_KEY$5}`,CLICK_DISMISS:`click.dismiss${EVENT_KEY$5}`,KEYDOWN_DISMISS:`keydown.dismiss${EVENT_KEY$5}`,MOUSEUP_DISMISS:`mouseup.dismiss${EVENT_KEY$5}`,MOUSEDOWN_DISMISS:`mousedown.dismiss${EVENT_KEY$5}`,CLICK_DATA_API:`click${EVENT_KEY$5}.data-api`},ClassName$5={SCROLLABLE:"modal-dialog-scrollable",SCROLLBAR_MEASURER:"modal-scrollbar-measure",BACKDROP:"modal-backdrop",OPEN:"modal-open",FADE:"fade",SHOW:"show"},Selector$5={DIALOG:".modal-dialog",MODAL_BODY:".modal-body",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top"};class Modal{constructor(e,t){this._config=this._getConfig(t),this._element=e,this._dialog=SelectorEngine.findOne(Selector$5.DIALOG,e),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,Data.setData(e,DATA_KEY$5,this)}static get VERSION(){return VERSION$5}static get Default(){return Default$3}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){if(this._isShown||this._isTransitioning)return;this._element.classList.contains(ClassName$5.FADE)&&(this._isTransitioning=!0);const t=EventHandler.trigger(this._element,Event$6.SHOW,{relatedTarget:e});this._isShown||t.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.on(this._element,Event$6.CLICK_DISMISS,Selector$5.DATA_DISMISS,e=>this.hide(e)),EventHandler.on(this._dialog,Event$6.MOUSEDOWN_DISMISS,()=>{EventHandler.one(this._element,Event$6.MOUSEUP_DISMISS,e=>{e.target===this._element&&(this._ignoreBackdropClick=!0)})}),this._showBackdrop(()=>this._showElement(e)))}hide(e){if(e&&e.preventDefault(),!this._isShown||this._isTransitioning)return;const t=EventHandler.trigger(this._element,Event$6.HIDE);if(!this._isShown||t.defaultPrevented)return;this._isShown=!1;const n=this._element.classList.contains(ClassName$5.FADE);if(n&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),EventHandler.off(document,Event$6.FOCUSIN),this._element.classList.remove(ClassName$5.SHOW),EventHandler.off(this._element,Event$6.CLICK_DISMISS),EventHandler.off(this._dialog,Event$6.MOUSEDOWN_DISMISS),n){const e=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,e=>this._hideModal(e)),emulateTransitionEnd(this._element,e)}else this._hideModal()}dispose(){[window,this._element,this._dialog].forEach(e=>EventHandler.off(e,EVENT_KEY$5)),EventHandler.off(document,Event$6.FOCUSIN),Data.removeData(this._element,DATA_KEY$5),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null}handleUpdate(){this._adjustDialog()}_getConfig(e){return e=_extends({},Default$3,e),typeCheckConfig(NAME$5,e,DefaultType$3),e}_showElement(e){const t=this._element.classList.contains(ClassName$5.FADE);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._dialog.classList.contains(ClassName$5.SCROLLABLE)?SelectorEngine.findOne(Selector$5.MODAL_BODY,this._dialog).scrollTop=0:this._element.scrollTop=0,t&&reflow(this._element),this._element.classList.add(ClassName$5.SHOW),this._config.focus&&this._enforceFocus();const n=()=>{this._config.focus&&this._element.focus(),this._isTransitioning=!1,EventHandler.trigger(this._element,Event$6.SHOWN,{relatedTarget:e})};if(t){const e=getTransitionDurationFromElement(this._dialog);EventHandler.one(this._dialog,TRANSITION_END,n),emulateTransitionEnd(this._dialog,e)}else n()}_enforceFocus(){EventHandler.off(document,Event$6.FOCUSIN),EventHandler.on(document,Event$6.FOCUSIN,e=>{document===e.target||this._element===e.target||this._element.contains(e.target)||this._element.focus()})}_setEscapeEvent(){this._isShown&&this._config.keyboard?EventHandler.on(this._element,Event$6.KEYDOWN_DISMISS,e=>{e.which===ESCAPE_KEYCODE$1&&(e.preventDefault(),this.hide())}):this._isShown||EventHandler.off(this._element,Event$6.KEYDOWN_DISMISS)}_setResizeEvent(){this._isShown?EventHandler.on(window,Event$6.RESIZE,e=>this.handleUpdate(e)):EventHandler.off(window,Event$6.RESIZE)}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(()=>{document.body.classList.remove(ClassName$5.OPEN),this._resetAdjustments(),this._resetScrollbar(),EventHandler.trigger(this._element,Event$6.HIDDEN)})}_removeBackdrop(){this._backdrop&&(this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null)}_showBackdrop(e){const t=this._element.classList.contains(ClassName$5.FADE)?ClassName$5.FADE:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=ClassName$5.BACKDROP,t&&this._backdrop.classList.add(t),document.body.appendChild(this._backdrop),EventHandler.on(this._element,Event$6.CLICK_DISMISS,e=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:e.target===e.currentTarget&&("static"===this._config.backdrop?this._element.focus():this.hide())}),t&&reflow(this._backdrop),this._backdrop.classList.add(ClassName$5.SHOW),!e)return;if(!t)return void e();const n=getTransitionDurationFromElement(this._backdrop);EventHandler.one(this._backdrop,TRANSITION_END,e),emulateTransitionEnd(this._backdrop,n)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove(ClassName$5.SHOW);const t=()=>{this._removeBackdrop(),e&&e()};if(this._element.classList.contains(ClassName$5.FADE)){const e=getTransitionDurationFromElement(this._backdrop);EventHandler.one(this._backdrop,TRANSITION_END,t),emulateTransitionEnd(this._backdrop,e)}else t()}else e&&e()}_adjustDialog(){const 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`)}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}_checkScrollbar(){const e=document.body.getBoundingClientRect();this._isBodyOverflowing=e.left+e.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()}_setScrollbar(){if(this._isBodyOverflowing){makeArray(SelectorEngine.find(Selector$5.FIXED_CONTENT)).forEach(e=>{const t=e.style.paddingRight,n=window.getComputedStyle(e)["padding-right"];Manipulator.setDataAttribute(e,"padding-right",t),e.style.paddingRight=`${parseFloat(n)+this._scrollbarWidth}px`}),makeArray(SelectorEngine.find(Selector$5.STICKY_CONTENT)).forEach(e=>{const t=e.style.marginRight,n=window.getComputedStyle(e)["margin-right"];Manipulator.setDataAttribute(e,"margin-right",t),e.style.marginRight=`${parseFloat(n)-this._scrollbarWidth}px`});const e=document.body.style.paddingRight,t=window.getComputedStyle(document.body)["padding-right"];Manipulator.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=`${parseFloat(t)+this._scrollbarWidth}px`}document.body.classList.add(ClassName$5.OPEN)}_resetScrollbar(){makeArray(SelectorEngine.find(Selector$5.FIXED_CONTENT)).forEach(e=>{const t=Manipulator.getDataAttribute(e,"padding-right");void 0!==t&&(Manipulator.removeDataAttribute(e,"padding-right"),e.style.paddingRight=t)}),makeArray(SelectorEngine.find(`${Selector$5.STICKY_CONTENT}`)).forEach(e=>{const t=Manipulator.getDataAttribute(e,"margin-right");void 0!==t&&(Manipulator.removeDataAttribute(e,"margin-right"),e.style.marginRight=t)});const 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)}_getScrollbarWidth(){const e=document.createElement("div");e.className=ClassName$5.SCROLLBAR_MEASURER,document.body.appendChild(e);const t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t}static _jQueryInterface(e,t){return this.each(function(){let n=Data.getData(this,DATA_KEY$5);const i=_extends({},Default$3,Manipulator.getDataAttributes(this),"object"==typeof e&&e?e:{});if(n||(n=new Modal(this,i)),"string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e](t)}else i.show&&n.show(t)})}static _getInstance(e){return Data.getData(e,DATA_KEY$5)}}if(EventHandler.on(document,Event$6.CLICK_DATA_API,Selector$5.DATA_TOGGLE,function(e){let t;const n=getSelectorFromElement(this);n&&(t=SelectorEngine.findOne(n));const i=Data.getData(t,DATA_KEY$5)?"toggle":_extends({},Manipulator.getDataAttributes(t),Manipulator.getDataAttributes(this));"A"!==this.tagName&&"AREA"!==this.tagName||e.preventDefault(),EventHandler.one(t,Event$6.SHOW,e=>{e.defaultPrevented||EventHandler.one(t,Event$6.HIDDEN,()=>{isVisible(this)&&this.focus()})});let s=Data.getData(t,DATA_KEY$5);s||(s=new Modal(t,i)),s.show(this)}),void 0!==jQuery){const e=jQuery.fn[NAME$5];jQuery.fn[NAME$5]=Modal._jQueryInterface,jQuery.fn[NAME$5].Constructor=Modal,jQuery.fn[NAME$5].noConflict=(()=>(jQuery.fn[NAME$5]=e,Modal._jQueryInterface))}const uriAttrs=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],ARIA_ATTRIBUTE_PATTERN=/^aria-[\w-]*$/i,SAFE_URL_PATTERN=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,DATA_URL_PATTERN=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,allowedAttribute=(e,t)=>{const n=e.nodeName.toLowerCase();if(-1!==t.indexOf(n))return-1===uriAttrs.indexOf(n)||Boolean(e.nodeValue.match(SAFE_URL_PATTERN)||e.nodeValue.match(DATA_URL_PATTERN));const i=t.filter(e=>e instanceof RegExp);for(let e=0,t=i.length;e<t;e++)if(n.match(i[e]))return!0;return!1},DefaultWhitelist={"*":["class","dir","id","lang","role",ARIA_ATTRIBUTE_PATTERN],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function sanitizeHtml(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const i=(new window.DOMParser).parseFromString(e,"text/html"),s=Object.keys(t),a=makeArray(i.body.querySelectorAll("*"));for(let e=0,n=a.length;e<n;e++){const n=a[e],i=n.nodeName.toLowerCase();if(-1===s.indexOf(i)){n.parentNode.removeChild(n);continue}const o=makeArray(n.attributes),r=[].concat(t["*"]||[],t[i]||[]);o.forEach(e=>{allowedAttribute(e,r)||n.removeAttribute(e.nodeName)})}return i.body.innerHTML}const NAME$6="tooltip",VERSION$6="4.3.1",DATA_KEY$6="bs.tooltip",EVENT_KEY$6=`.${DATA_KEY$6}`,CLASS_PREFIX="bs-tooltip",BSCLS_PREFIX_REGEX=new RegExp(`(^|\\s)${CLASS_PREFIX}\\S+`,"g"),DISALLOWED_ATTRIBUTES=["sanitize","whiteList","sanitizeFn"],DefaultType$4={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},AttachmentMap$1={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Default$4={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:DefaultWhitelist},HoverState={SHOW:"show",OUT:"out"},Event$7={HIDE:`hide${EVENT_KEY$6}`,HIDDEN:`hidden${EVENT_KEY$6}`,SHOW:`show${EVENT_KEY$6}`,SHOWN:`shown${EVENT_KEY$6}`,INSERTED:`inserted${EVENT_KEY$6}`,CLICK:`click${EVENT_KEY$6}`,FOCUSIN:`focusin${EVENT_KEY$6}`,FOCUSOUT:`focusout${EVENT_KEY$6}`,MOUSEENTER:`mouseenter${EVENT_KEY$6}`,MOUSELEAVE:`mouseleave${EVENT_KEY$6}`},ClassName$6={FADE:"fade",SHOW:"show"},Selector$6={TOOLTIP_INNER:".tooltip-inner",TOOLTIP_ARROW:".tooltip-arrow"},Trigger={HOVER:"hover",FOCUS:"focus",CLICK:"click",MANUAL:"manual"};class Tooltip{constructor(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)}static get VERSION(){return VERSION$6}static get Default(){return Default$4}static get NAME(){return NAME$6}static get DATA_KEY(){return DATA_KEY$6}static get Event(){return Event$7}static get EVENT_KEY(){return EVENT_KEY$6}static get DefaultType(){return DefaultType$4}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(e){if(this._isEnabled)if(e){const t=this.constructor.DATA_KEY;let n=Data.getData(e.delegateTarget,t);n||(n=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.setData(e.delegateTarget,t,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(ClassName$6.SHOW))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),Data.removeData(this.element,this.constructor.DATA_KEY),EventHandler.off(this.element,this.constructor.EVENT_KEY),EventHandler.off(SelectorEngine.closest(this.element,".modal"),"hide.bs.modal"),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null}show(){if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){const e=EventHandler.trigger(this.element,this.constructor.Event.SHOW),t=findShadowRoot(this.element),n=null===t?this.element.ownerDocument.documentElement.contains(this.element):t.contains(this.element);if(e.defaultPrevented||!n)return;const i=this.getTipElement(),s=getUID(this.constructor.NAME);i.setAttribute("id",s),this.element.setAttribute("aria-describedby",s),this.setContent(),this.config.animation&&i.classList.add(ClassName$6.FADE);const a="function"==typeof this.config.placement?this.config.placement.call(this,i,this.element):this.config.placement,o=this._getAttachment(a);this.addAttachmentClass(o);const r=this._getContainer();Data.setData(i,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||r.appendChild(i),EventHandler.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new Popper(this.element,i,{placement:o,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:Selector$6.TOOLTIP_ARROW},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:e=>{e.originalPlacement!==e.placement&&this._handlePopperPlacementChange(e)},onUpdate:e=>this._handlePopperPlacementChange(e)}),i.classList.add(ClassName$6.SHOW),"ontouchstart"in document.documentElement&&makeArray(document.body.children).forEach(e=>{EventHandler.on(e,"mouseover",noop())});const l=()=>{this.config.animation&&this._fixTransition();const e=this._hoverState;this._hoverState=null,EventHandler.trigger(this.element,this.constructor.Event.SHOWN),e===HoverState.OUT&&this._leave(null,this)};if(this.tip.classList.contains(ClassName$6.FADE)){const e=getTransitionDurationFromElement(this.tip);EventHandler.one(this.tip,TRANSITION_END,l),emulateTransitionEnd(this.tip,e)}else l()}}hide(e){const t=this.getTipElement(),n=()=>{this._hoverState!==HoverState.SHOW&&t.parentNode&&t.parentNode.removeChild(t),this._cleanTipClass(),this.element.removeAttribute("aria-describedby"),EventHandler.trigger(this.element,this.constructor.Event.HIDDEN),null!==this._popper&&this._popper.destroy(),e&&e()};if(!EventHandler.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){if(t.classList.remove(ClassName$6.SHOW),"ontouchstart"in document.documentElement&&makeArray(document.body.children).forEach(e=>EventHandler.off(e,"mouseover",noop)),this._activeTrigger[Trigger.CLICK]=!1,this._activeTrigger[Trigger.FOCUS]=!1,this._activeTrigger[Trigger.HOVER]=!1,this.tip.classList.contains(ClassName$6.FADE)){const e=getTransitionDurationFromElement(t);EventHandler.one(t,TRANSITION_END,n),emulateTransitionEnd(t,e)}else n();this._hoverState=""}}update(){null!==this._popper&&this._popper.scheduleUpdate()}isWithContent(){return Boolean(this.getTitle())}addAttachmentClass(e){this.getTipElement().classList.add(`${CLASS_PREFIX}-${e}`)}getTipElement(){if(this.tip)return this.tip;const e=document.createElement("div");return e.innerHTML=this.config.template,this.tip=e.children[0],this.tip}setContent(){const e=this.getTipElement();this.setElementContent(SelectorEngine.findOne(Selector$6.TOOLTIP_INNER,e),this.getTitle()),e.classList.remove(ClassName$6.FADE),e.classList.remove(ClassName$6.SHOW)}setElementContent(e,t){if(null!==e)return"object"==typeof t&&(t.nodeType||t.jquery)?(t.jquery&&(t=t[0]),void(this.config.html?t.parentNode!==e&&(e.innerHTML="",e.appendChild(t)):e.innerText=t.textContent)):void(this.config.html?(this.config.sanitize&&(t=sanitizeHtml(t,this.config.whiteList,this.config.sanitizeFn)),e.innerHTML=t):e.innerText=t)}getTitle(){let 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}_getOffset(){const e={};return"function"==typeof this.config.offset?e.fn=(e=>(e.offsets=_extends({},e.offsets,this.config.offset(e.offsets,this.element)||{}),e)):e.offset=this.config.offset,e}_getContainer(){return!1===this.config.container?document.body:isElement(this.config.container)?this.config.container:SelectorEngine.findOne(this.config.container)}_getAttachment(e){return AttachmentMap$1[e.toUpperCase()]}_setListeners(){this.config.trigger.split(" ").forEach(e=>{if("click"===e)EventHandler.on(this.element,this.constructor.Event.CLICK,this.config.selector,e=>this.toggle(e));else if(e!==Trigger.MANUAL){const t=e===Trigger.HOVER?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,n=e===Trigger.HOVER?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;EventHandler.on(this.element,t,this.config.selector,e=>this._enter(e)),EventHandler.on(this.element,n,this.config.selector,e=>this._leave(e))}}),EventHandler.on(SelectorEngine.closest(this.element,".modal"),"hide.bs.modal",()=>{this.element&&this.hide()}),this.config.selector?this.config=_extends({},this.config,{trigger:"manual",selector:""}):this._fixTitle()}_fixTitle(){const 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",""))}_enter(e,t){const n=this.constructor.DATA_KEY;(t=t||Data.getData(e.delegateTarget,n))||(t=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.setData(e.delegateTarget,n,t)),e&&(t._activeTrigger["focusin"===e.type?Trigger.FOCUS:Trigger.HOVER]=!0),t.getTipElement().classList.contains(ClassName$6.SHOW)||t._hoverState===HoverState.SHOW?t._hoverState=HoverState.SHOW:(clearTimeout(t._timeout),t._hoverState=HoverState.SHOW,t.config.delay&&t.config.delay.show?t._timeout=setTimeout(()=>{t._hoverState===HoverState.SHOW&&t.show()},t.config.delay.show):t.show())}_leave(e,t){const n=this.constructor.DATA_KEY;(t=t||Data.getData(e.delegateTarget,n))||(t=new this.constructor(e.delegateTarget,this._getDelegateConfig()),Data.setData(e.delegateTarget,n,t)),e&&(t._activeTrigger["focusout"===e.type?Trigger.FOCUS:Trigger.HOVER]=!1),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState=HoverState.OUT,t.config.delay&&t.config.delay.hide?t._timeout=setTimeout(()=>{t._hoverState===HoverState.OUT&&t.hide()},t.config.delay.hide):t.hide())}_isWithActiveTrigger(){for(const e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1}_getConfig(e){const t=Manipulator.getDataAttributes(this.element);return Object.keys(t).forEach(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=_extends({},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}_getDelegateConfig(){const e={};if(this.config)for(const t in this.config)this.constructor.Default[t]!==this.config[t]&&(e[t]=this.config[t]);return e}_cleanTipClass(){const e=this.getTipElement(),t=e.getAttribute("class").match(BSCLS_PREFIX_REGEX);null!==t&&t.length&&t.map(e=>e.trim()).forEach(t=>e.classList.remove(t))}_handlePopperPlacementChange(e){const t=e.instance;this.tip=t.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(e.placement))}_fixTransition(){const e=this.getTipElement(),t=this.config.animation;null===e.getAttribute("x-placement")&&(e.classList.remove(ClassName$6.FADE),this.config.animation=!1,this.hide(),this.show(),this.config.animation=t)}static _jQueryInterface(e){return this.each(function(){let t=Data.getData(this,DATA_KEY$6);const n="object"==typeof e&&e;if((t||!/dispose|hide/.test(e))&&(t||(t=new Tooltip(this,n)),"string"==typeof e)){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}static _getInstance(e){return Data.getData(e,DATA_KEY$6)}}if(void 0!==jQuery){const e=jQuery.fn[NAME$6];jQuery.fn[NAME$6]=Tooltip._jQueryInterface,jQuery.fn[NAME$6].Constructor=Tooltip,jQuery.fn[NAME$6].noConflict=(()=>(jQuery.fn[NAME$6]=e,Tooltip._jQueryInterface))}const 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=_extends({},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=_extends({},Tooltip.DefaultType,{content:"(string|element|function)"}),ClassName$7={FADE:"fade",SHOW:"show"},Selector$7={TITLE:".popover-header",CONTENT:".popover-body"},Event$8={HIDE:`hide${EVENT_KEY$7}`,HIDDEN:`hidden${EVENT_KEY$7}`,SHOW:`show${EVENT_KEY$7}`,SHOWN:`shown${EVENT_KEY$7}`,INSERTED:`inserted${EVENT_KEY$7}`,CLICK:`click${EVENT_KEY$7}`,FOCUSIN:`focusin${EVENT_KEY$7}`,FOCUSOUT:`focusout${EVENT_KEY$7}`,MOUSEENTER:`mouseenter${EVENT_KEY$7}`,MOUSELEAVE:`mouseleave${EVENT_KEY$7}`};class Popover extends Tooltip{static get VERSION(){return VERSION$7}static get Default(){return Default$5}static get NAME(){return NAME$7}static get DATA_KEY(){return DATA_KEY$7}static get Event(){return Event$8}static get EVENT_KEY(){return EVENT_KEY$7}static get DefaultType(){return DefaultType$5}isWithContent(){return this.getTitle()||this._getContent()}addAttachmentClass(e){this.getTipElement().classList.add(`${CLASS_PREFIX$1}-${e}`)}setContent(){const e=this.getTipElement();this.setElementContent(SelectorEngine.findOne(Selector$7.TITLE,e),this.getTitle());let t=this._getContent();"function"==typeof t&&(t=t.call(this.element)),this.setElementContent(SelectorEngine.findOne(Selector$7.CONTENT,e),t),e.classList.remove(ClassName$7.FADE),e.classList.remove(ClassName$7.SHOW)}_getContent(){return this.element.getAttribute("data-content")||this.config.content}_cleanTipClass(){const e=this.getTipElement(),t=e.getAttribute("class").match(BSCLS_PREFIX_REGEX$1);null!==t&&t.length>0&&t.map(e=>e.trim()).forEach(t=>e.classList.remove(t))}static _jQueryInterface(e){return this.each(function(){let t=Data.getData(this,DATA_KEY$7);const n="object"==typeof e?e:null;if((t||!/dispose|hide/.test(e))&&(t||(t=new Popover(this,n),Data.setData(this,DATA_KEY$7,t)),"string"==typeof e)){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}static _getInstance(e){return Data.getData(e,DATA_KEY$7)}}if(void 0!==jQuery){const e=jQuery.fn[NAME$7];jQuery.fn[NAME$7]=Popover._jQueryInterface,jQuery.fn[NAME$7].Constructor=Popover,jQuery.fn[NAME$7].noConflict=(()=>(jQuery.fn[NAME$7]=e,Popover._jQueryInterface))}const NAME$8="scrollspy",VERSION$8="4.3.1",DATA_KEY$8="bs.scrollspy",EVENT_KEY$8=`.${DATA_KEY$8}`,DATA_API_KEY$6=".data-api",Default$6={offset:10,method:"auto",target:""},DefaultType$6={offset:"number",method:"string",target:"(string|element)"},Event$9={ACTIVATE:`activate${EVENT_KEY$8}`,SCROLL:`scroll${EVENT_KEY$8}`,LOAD_DATA_API:`load${EVENT_KEY$8}.data-api`},ClassName$8={DROPDOWN_ITEM:"dropdown-item",ACTIVE:"active"},Selector$8={DATA_SPY:'[data-spy="scroll"]',NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_TOGGLE:".dropdown-toggle"},OffsetMethod={OFFSET:"offset",POSITION:"position"};class ScrollSpy{constructor(e,t){this._element=e,this._scrollElement="BODY"===e.tagName?window:e,this._config=this._getConfig(t),this._selector=`${this._config.target} ${Selector$8.NAV_LINKS},`+`${this._config.target} ${Selector$8.LIST_ITEMS},`+`${this._config.target} .${ClassName$8.DROPDOWN_ITEM}`,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,EventHandler.on(this._scrollElement,Event$9.SCROLL,e=>this._process(e)),this.refresh(),this._process(),Data.setData(e,DATA_KEY$8,this)}static get VERSION(){return VERSION$8}static get Default(){return Default$6}refresh(){const e=this._scrollElement===this._scrollElement.window?OffsetMethod.OFFSET:OffsetMethod.POSITION,t="auto"===this._config.method?e:this._config.method,n=t===OffsetMethod.POSITION?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),makeArray(SelectorEngine.find(this._selector)).map(e=>{let i;const s=getSelectorFromElement(e);if(s&&(i=SelectorEngine.findOne(s)),i){const e=i.getBoundingClientRect();if(e.width||e.height)return[Manipulator[t](i).top+n,s]}return null}).filter(e=>e).sort((e,t)=>e[0]-t[0]).forEach(e=>{this._offsets.push(e[0]),this._targets.push(e[1])})}dispose(){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}_getConfig(e){if("string"!=typeof(e=_extends({},Default$6,"object"==typeof e&&e?e:{})).target){let t=e.target.id;t||(t=getUID(NAME$8),e.target.id=t),e.target=`#${t}`}return typeCheckConfig(NAME$8,e,DefaultType$6),e}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),e>=n){const e=this._targets[this._targets.length-1];this._activeTarget!==e&&this._activate(e)}else{if(this._activeTarget&&e<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(let t=this._offsets.length;t--;){this._activeTarget!==this._targets[t]&&e>=this._offsets[t]&&(void 0===this._offsets[t+1]||e<this._offsets[t+1])&&this._activate(this._targets[t])}}}_activate(e){this._activeTarget=e,this._clear();const t=this._selector.split(",").map(t=>`${t}[data-target="${e}"],${t}[href="${e}"]`),n=SelectorEngine.findOne(t.join(","));n.classList.contains(ClassName$8.DROPDOWN_ITEM)?(SelectorEngine.findOne(Selector$8.DROPDOWN_TOGGLE,SelectorEngine.closest(n,Selector$8.DROPDOWN)).classList.add(ClassName$8.ACTIVE),n.classList.add(ClassName$8.ACTIVE)):(n.classList.add(ClassName$8.ACTIVE),SelectorEngine.parents(n,Selector$8.NAV_LIST_GROUP).forEach(e=>{SelectorEngine.prev(e,`${Selector$8.NAV_LINKS}, ${Selector$8.LIST_ITEMS}`).forEach(e=>e.classList.add(ClassName$8.ACTIVE)),SelectorEngine.prev(e,Selector$8.NAV_ITEMS).forEach(e=>{SelectorEngine.children(e,Selector$8.NAV_LINKS).forEach(e=>e.classList.add(ClassName$8.ACTIVE))})})),EventHandler.trigger(this._scrollElement,Event$9.ACTIVATE,{relatedTarget:e})}_clear(){makeArray(SelectorEngine.find(this._selector)).filter(e=>e.classList.contains(ClassName$8.ACTIVE)).forEach(e=>e.classList.remove(ClassName$8.ACTIVE))}static _jQueryInterface(e){return this.each(function(){let t=Data.getData(this,DATA_KEY$8);if(t||(t=new ScrollSpy(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}static _getInstance(e){return Data.getData(e,DATA_KEY$8)}}if(EventHandler.on(window,Event$9.LOAD_DATA_API,()=>{makeArray(SelectorEngine.find(Selector$8.DATA_SPY)).forEach(e=>new ScrollSpy(e,Manipulator.getDataAttributes(e)))}),void 0!==jQuery){const e=jQuery.fn[NAME$8];jQuery.fn[NAME$8]=ScrollSpy._jQueryInterface,jQuery.fn[NAME$8].Constructor=ScrollSpy,jQuery.fn[NAME$8].noConflict=(()=>(jQuery.fn[NAME$8]=e,ScrollSpy._jQueryInterface))}const NAME$9="tab",VERSION$9="4.3.1",DATA_KEY$9="bs.tab",EVENT_KEY$9=`.${DATA_KEY$9}`,DATA_API_KEY$7=".data-api",Event$a={HIDE:`hide${EVENT_KEY$9}`,HIDDEN:`hidden${EVENT_KEY$9}`,SHOW:`show${EVENT_KEY$9}`,SHOWN:`shown${EVENT_KEY$9}`,CLICK_DATA_API:`click${EVENT_KEY$9}.data-api`},ClassName$9={DROPDOWN_MENU:"dropdown-menu",ACTIVE:"active",DISABLED:"disabled",FADE:"fade",SHOW:"show"},Selector$9={DROPDOWN:".dropdown",NAV_LIST_GROUP:".nav, .list-group",ACTIVE:".active",ACTIVE_UL:":scope > li > .active",DATA_TOGGLE:'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',DROPDOWN_TOGGLE:".dropdown-toggle",DROPDOWN_ACTIVE_CHILD:":scope > .dropdown-menu .active"};class Tab{constructor(e){this._element=e,Data.setData(this._element,DATA_KEY$9,this)}static get VERSION(){return VERSION$9}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(ClassName$9.ACTIVE)||this._element.classList.contains(ClassName$9.DISABLED))return;let e,t;const n=SelectorEngine.closest(this._element,Selector$9.NAV_LIST_GROUP),i=getSelectorFromElement(this._element);if(n){const e="UL"===n.nodeName||"OL"===n.nodeName?Selector$9.ACTIVE_UL:Selector$9.ACTIVE;t=(t=makeArray(SelectorEngine.find(e,n)))[t.length-1]}let s=null;if(t&&(s=EventHandler.trigger(t,Event$a.HIDE,{relatedTarget:this._element})),EventHandler.trigger(this._element,Event$a.SHOW,{relatedTarget:t}).defaultPrevented||null!==s&&s.defaultPrevented)return;i&&(e=SelectorEngine.findOne(i)),this._activate(this._element,n);const a=()=>{EventHandler.trigger(t,Event$a.HIDDEN,{relatedTarget:this._element}),EventHandler.trigger(this._element,Event$a.SHOWN,{relatedTarget:t})};e?this._activate(e,e.parentNode,a):a()}dispose(){Data.removeData(this._element,DATA_KEY$9),this._element=null}_activate(e,t,n){const i=(!t||"UL"!==t.nodeName&&"OL"!==t.nodeName?SelectorEngine.children(t,Selector$9.ACTIVE):SelectorEngine.find(Selector$9.ACTIVE_UL,t))[0],s=n&&i&&i.classList.contains(ClassName$9.FADE),a=()=>this._transitionComplete(e,i,n);if(i&&s){const e=getTransitionDurationFromElement(i);i.classList.remove(ClassName$9.SHOW),EventHandler.one(i,TRANSITION_END,a),emulateTransitionEnd(i,e)}else a()}_transitionComplete(e,t,n){if(t){t.classList.remove(ClassName$9.ACTIVE);const e=SelectorEngine.findOne(Selector$9.DROPDOWN_ACTIVE_CHILD,t.parentNode);e&&e.classList.remove(ClassName$9.ACTIVE),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}if(e.classList.add(ClassName$9.ACTIVE),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),reflow(e),e.classList.contains(ClassName$9.FADE)&&e.classList.add(ClassName$9.SHOW),e.parentNode&&e.parentNode.classList.contains(ClassName$9.DROPDOWN_MENU)){SelectorEngine.closest(e,Selector$9.DROPDOWN)&&makeArray(SelectorEngine.find(Selector$9.DROPDOWN_TOGGLE)).forEach(e=>e.classList.add(ClassName$9.ACTIVE)),e.setAttribute("aria-expanded",!0)}n&&n()}static _jQueryInterface(e){return this.each(function(){const t=Data.getData(this,DATA_KEY$9)||new Tab(this);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}static _getInstance(e){return Data.getData(e,DATA_KEY$9)}}if(EventHandler.on(document,Event$a.CLICK_DATA_API,Selector$9.DATA_TOGGLE,function(e){e.preventDefault(),(Data.getData(this,DATA_KEY$9)||new Tab(this)).show()}),void 0!==jQuery){const e=jQuery.fn.tab;jQuery.fn.tab=Tab._jQueryInterface,jQuery.fn.tab.Constructor=Tab,jQuery.fn.tab.noConflict=(()=>(jQuery.fn.tab=e,Tab._jQueryInterface))}const NAME$a="toast",VERSION$a="4.3.1",DATA_KEY$a="bs.toast",EVENT_KEY$a=`.${DATA_KEY$a}`,Event$b={CLICK_DISMISS:`click.dismiss${EVENT_KEY$a}`,HIDE:`hide${EVENT_KEY$a}`,HIDDEN:`hidden${EVENT_KEY$a}`,SHOW:`show${EVENT_KEY$a}`,SHOWN:`shown${EVENT_KEY$a}`},ClassName$a={FADE:"fade",HIDE:"hide",SHOW:"show",SHOWING:"showing"},DefaultType$7={animation:"boolean",autohide:"boolean",delay:"number"},Default$7={animation:!0,autohide:!0,delay:500},Selector$a={DATA_DISMISS:'[data-dismiss="toast"]'};class Toast{constructor(e,t){this._element=e,this._config=this._getConfig(t),this._timeout=null,this._setListeners(),Data.setData(e,DATA_KEY$a,this)}static get VERSION(){return VERSION$a}static get DefaultType(){return DefaultType$7}static get Default(){return Default$7}show(){EventHandler.trigger(this._element,Event$b.SHOW),this._config.animation&&this._element.classList.add(ClassName$a.FADE);const e=()=>{this._element.classList.remove(ClassName$a.SHOWING),this._element.classList.add(ClassName$a.SHOW),EventHandler.trigger(this._element,Event$b.SHOWN),this._config.autohide&&this.hide()};if(this._element.classList.remove(ClassName$a.HIDE),this._element.classList.add(ClassName$a.SHOWING),this._config.animation){const t=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,e),emulateTransitionEnd(this._element,t)}else e()}hide(e){this._element.classList.contains(ClassName$a.SHOW)&&(EventHandler.trigger(this._element,Event$b.HIDE),e?this._close():this._timeout=setTimeout(()=>{this._close()},this._config.delay))}dispose(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(ClassName$a.SHOW)&&this._element.classList.remove(ClassName$a.SHOW),EventHandler.off(this._element,Event$b.CLICK_DISMISS),Data.removeData(this._element,DATA_KEY$a),this._element=null,this._config=null}_getConfig(e){return e=_extends({},Default$7,Manipulator.getDataAttributes(this._element),"object"==typeof e&&e?e:{}),typeCheckConfig(NAME$a,e,this.constructor.DefaultType),e}_setListeners(){EventHandler.on(this._element,Event$b.CLICK_DISMISS,Selector$a.DATA_DISMISS,()=>this.hide(!0))}_close(){const e=()=>{this._element.classList.add(ClassName$a.HIDE),EventHandler.trigger(this._element,Event$b.HIDDEN)};if(this._element.classList.remove(ClassName$a.SHOW),this._config.animation){const t=getTransitionDurationFromElement(this._element);EventHandler.one(this._element,TRANSITION_END,e),emulateTransitionEnd(this._element,t)}else e()}static _jQueryInterface(e){return this.each(function(){let t=Data.getData(this,DATA_KEY$a);if(t||(t=new Toast(this,"object"==typeof e&&e)),"string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e](this)}})}static _getInstance(e){return Data.getData(e,DATA_KEY$a)}}if(void 0!==jQuery){const e=jQuery.fn[NAME$a];jQuery.fn[NAME$a]=Toast._jQueryInterface,jQuery.fn[NAME$a].Constructor=Toast,jQuery.fn[NAME$a].noConflict=(()=>(jQuery.fn[NAME$a]=e,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
new file mode 100644
index 0000000000..70098174f6
--- /dev/null
+++ b/dist/js/bootstrap.esm.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/eventHandler.js","../../js/src/dom/selectorEngine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","_window$getComputedSt","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","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","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Polyfill","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","find","Element","prototype","querySelectorAll","findOne","scopeSelectorRegex","this","hasId","Boolean","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","uidList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","_normalizeParams","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","isNative","jQueryEvent","bubbles","nativeDispatch","evt","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","findFn","NODE_TEXT","SelectorEngine","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","constructor","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","each","alertInstance","_handleDismiss","JQUERY_NO_CONFLICT","_jQueryInterface","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_extends","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","nextElementInterval","parseInt","defaultInterval","action","TypeError","ride","_carouselInterface","slideIndex","_dataApiClickHandler","carousels","len","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","Popper","referenceElement","_getPopperConfig","destroy","update","scheduleUpdate","stopPropagation","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","items","_dataApiKeydownHandler","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","hideEvent","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","TOOLTIP_ARROW","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","active","_transitionComplete","dropdownChild","dropdown","SHOWING","autohide","Toast","withoutTimeout","_close"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n 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 makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/**\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 {\n getUID\n} from '../util/index'\n\n/* istanbul ignore next */\nconst Polyfill = (() => {\n // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\n const 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\n let find = Element.prototype.querySelectorAll\n let findOne = Element.prototype.querySelector\n\n const scopeSelectorRegex = /:scope\\b/\n const supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n })()\n\n if (!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\n return {\n defaultPreventedPreservedOnDispatch,\n find,\n findOne\n }\n})()\n\nexport default Polyfill\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from '../util/index'\nimport Polyfill from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidList = Object.keys(events)\n\n for (let i = 0; i < uidList.length; i++) {\n const uid = uidList[i]\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = 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 (!Polyfill.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/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Polyfill from './polyfill'\nimport {\n makeArray\n} from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst { find: findFn, findOne } = Polyfill\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 if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return element.closest(selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.add(ClassName.FOCUS)\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.remove(ClassName.FOCUS)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n makeArray\n} from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n"]} \ No newline at end of file
diff --git a/dist/js/bootstrap.js b/dist/js/bootstrap.js
index 378690ad6a..1fb68d47e9 100644
--- a/dist/js/bootstrap.js
+++ b/dist/js/bootstrap.js
@@ -4,10 +4,10 @@
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('popper.js')) :
- typeof define === 'function' && define.amd ? define(['exports', 'popper.js'], factory) :
- (global = global || self, factory(global.bootstrap = {}, global.Popper));
-}(this, function (exports, Popper) { 'use strict';
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('popper.js')) :
+ typeof define === 'function' && define.amd ? define(['popper.js'], factory) :
+ (global = global || self, global.bootstrap = factory(global.Popper));
+}(this, function (Popper) { 'use strict';
Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;
@@ -76,7 +76,8 @@
var MAX_UID = 1000000;
var MILLISECONDS_MULTIPLIER = 1000;
var TRANSITION_END = 'transitionend';
- var jQuery = window.jQuery; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
+ var _window = window,
+ jQuery = _window.jQuery; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
var toType = function toType(obj) {
return {}.toString.call(obj).match(/\s([a-z]+)/i)[1].toLowerCase();
@@ -107,7 +108,7 @@
try {
return document.querySelector(selector) ? selector : null;
- } catch (err) {
+ } catch (error) {
return null;
}
};
@@ -324,7 +325,7 @@
try {
element.querySelectorAll(':scope *');
- } catch (e) {
+ } catch (error) {
return false;
}
@@ -416,13 +417,14 @@
function getEvent(element) {
var uid = getUidEvent(element);
element.uidEvent = uid;
- return eventRegistry[uid] = eventRegistry[uid] || {};
+ eventRegistry[uid] = eventRegistry[uid] || {};
+ 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.charCode : event.keyCode;
+ event.which = event.charCode === null ? event.keyCode : event.charCode;
}
event.delegateTarget = element;
@@ -527,7 +529,7 @@
}
var uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''));
- var fn = !delegation ? bootstrapHandler(element, handler) : bootstrapDelegationHandler(element, handler, delegationFn);
+ var fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler);
fn.delegationSelector = delegation ? handler : null;
fn.originalHandler = originalHandler;
fn.oneOff = oneOff;
@@ -683,8 +685,8 @@
* ------------------------------------------------------------------------
*/
- var findFn = Polyfill.find;
- var _findOne = Polyfill.findOne;
+ var findFn = Polyfill.find,
+ _findOne = Polyfill.findOne;
var NODE_TEXT = 3;
var SelectorEngine = {
matches: function matches(element, selector) {
@@ -1725,7 +1727,7 @@
data.to(config);
} else if (typeof action === 'string') {
if (typeof data[action] === 'undefined') {
- throw new Error("No method named \"" + action + "\"");
+ throw new TypeError("No method named \"" + action + "\"");
}
data[action]();
@@ -2103,19 +2105,18 @@
_proto._getParent = function _getParent() {
var _this3 = this;
- var parent;
-
- if (isElement(this._config.parent)) {
- parent = this._config.parent; // it's a jQuery object
+ var parent = this._config.parent;
- if (typeof this._config.parent.jquery !== 'undefined' || typeof this._config.parent[0] !== 'undefined') {
- parent = this._config.parent[0];
+ if (isElement(parent)) {
+ // it's a jQuery object
+ if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {
+ parent = parent[0];
}
} else {
- parent = SelectorEngine.findOne(this._config.parent);
+ parent = SelectorEngine.findOne(parent);
}
- var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
+ var selector = "[data-toggle=\"collapse\"][data-parent=\"" + parent + "\"]";
makeArray(SelectorEngine.find(selector, parent)).forEach(function (element) {
_this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);
});
@@ -2128,10 +2129,10 @@
if (triggerArray.length) {
triggerArray.forEach(function (elem) {
- if (!isOpen) {
- elem.classList.add(ClassName$3.COLLAPSED);
- } else {
+ if (isOpen) {
elem.classList.remove(ClassName$3.COLLAPSED);
+ } else {
+ elem.classList.add(ClassName$3.COLLAPSED);
}
elem.setAttribute('aria-expanded', isOpen);
@@ -2161,7 +2162,7 @@
if (typeof config === 'string') {
if (typeof data[config] === 'undefined') {
- throw new Error("No method named \"" + config + "\"");
+ throw new TypeError("No method named \"" + config + "\"");
}
data[config]();
@@ -2286,7 +2287,6 @@
DROPRIGHT: 'dropright',
DROPLEFT: 'dropleft',
MENURIGHT: 'dropdown-menu-right',
- MENULEFT: 'dropdown-menu-left',
POSITION_STATIC: 'position-static'
};
var Selector$4 = {
@@ -2592,7 +2592,7 @@
if (typeof config === 'string') {
if (typeof data[config] === 'undefined') {
- throw new Error("No method named \"" + config + "\"");
+ throw new TypeError("No method named \"" + config + "\"");
}
data[config]();
@@ -3197,7 +3197,6 @@
}
} // ----------------------------------------------------------------------
// the following methods are used to handle overflowing modals
- // todo (fat): these should probably be refactored out of modal.js
// ----------------------------------------------------------------------
;
@@ -3276,11 +3275,11 @@
var padding = Manipulator.getDataAttribute(document.body, 'padding-right');
- if (typeof padding !== 'undefined') {
+ if (typeof padding === 'undefined') {
+ document.body.style.paddingRight = '';
+ } else {
Manipulator.removeDataAttribute(document.body, 'padding-right');
document.body.style.paddingRight = padding;
- } else {
- document.body.style.paddingRight = '';
}
};
@@ -3591,7 +3590,6 @@
SHOW: 'show'
};
var Selector$6 = {
- TOOLTIP: '.tooltip',
TOOLTIP_INNER: '.tooltip-inner',
TOOLTIP_ARROW: '.tooltip-arrow'
};
@@ -3719,7 +3717,7 @@
if (this.isWithContent() && this._isEnabled) {
var showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW);
var shadowRoot = findShadowRoot(this.element);
- var isInTheDom = shadowRoot !== null ? shadowRoot.contains(this.element) : this.element.ownerDocument.documentElement.contains(this.element);
+ var isInTheDom = shadowRoot === null ? this.element.ownerDocument.documentElement.contains(this.element) : shadowRoot.contains(this.element);
if (showEvent.defaultPrevented || !isInTheDom) {
return;
@@ -4491,18 +4489,15 @@
};
var ClassName$8 = {
DROPDOWN_ITEM: 'dropdown-item',
- DROPDOWN_MENU: 'dropdown-menu',
ACTIVE: 'active'
};
var Selector$8 = {
DATA_SPY: '[data-spy="scroll"]',
- ACTIVE: '.active',
NAV_LIST_GROUP: '.nav, .list-group',
NAV_LINKS: '.nav-link',
NAV_ITEMS: '.nav-item',
LIST_ITEMS: '.list-group-item',
DROPDOWN: '.dropdown',
- DROPDOWN_ITEMS: '.dropdown-item',
DROPDOWN_TOGGLE: '.dropdown-toggle'
};
var OffsetMethod = {
@@ -4525,7 +4520,7 @@
this._element = element;
this._scrollElement = element.tagName === 'BODY' ? window : element;
this._config = this._getConfig(config);
- this._selector = this._config.target + " " + Selector$8.NAV_LINKS + "," + (this._config.target + " " + Selector$8.LIST_ITEMS + ",") + (this._config.target + " " + Selector$8.DROPDOWN_ITEMS);
+ this._selector = this._config.target + " " + Selector$8.NAV_LINKS + "," + (this._config.target + " " + Selector$8.LIST_ITEMS + ",") + (this._config.target + " ." + ClassName$8.DROPDOWN_ITEM);
this._offsets = [];
this._targets = [];
this._activeTarget = null;
@@ -4566,7 +4561,6 @@
var targetBCR = target.getBoundingClientRect();
if (targetBCR.width || targetBCR.height) {
- // TODO (fat): remove sketch reliance on jQuery position/offset
return [Manipulator[offsetMethod](target).top + offsetBase, targetSelector];
}
}
@@ -5243,24 +5237,25 @@
/**
* --------------------------------------------------------------------------
- * Bootstrap (v4.3.1): index.js
+ * Bootstrap (v4.3.1): index.umd.js
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
+ var index_umd = {
+ Alert: Alert,
+ Button: Button,
+ Carousel: Carousel,
+ Collapse: Collapse,
+ Dropdown: Dropdown,
+ Modal: Modal,
+ Popover: Popover,
+ ScrollSpy: ScrollSpy,
+ Tab: Tab,
+ Toast: Toast,
+ Tooltip: Tooltip
+ };
- exports.Alert = Alert;
- exports.Button = Button;
- exports.Carousel = Carousel;
- exports.Collapse = Collapse;
- exports.Dropdown = Dropdown;
- exports.Modal = Modal;
- exports.Popover = Popover;
- exports.ScrollSpy = ScrollSpy;
- exports.Tab = Tab;
- exports.Toast = Toast;
- exports.Tooltip = Tooltip;
-
- Object.defineProperty(exports, '__esModule', { value: true });
+ return index_umd;
}));
//# sourceMappingURL=bootstrap.js.map
diff --git a/dist/js/bootstrap.js.map b/dist/js/bootstrap.js.map
index b564084836..2eb6635691 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/eventHandler.js","../../js/src/dom/selectorEngine.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/src/index.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst jQuery = window.jQuery\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = (obj) => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = (prefix) => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n}\n\nconst getSelectorFromElement = (element) => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = (element) => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = (element) => {\n 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' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = (nodeList) => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = (element) => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = (element) => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = (element) => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n 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","/**\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 {\n getUID\n} from '../util/index'\n\n/* istanbul ignore next */\nconst Polyfill = (() => {\n // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\n const 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\n let find = Element.prototype.querySelectorAll\n let findOne = Element.prototype.querySelector\n\n const scopeSelectorRegex = /:scope\\b/\n const supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (e) {\n return false\n }\n\n return true\n })()\n\n if (!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\n return {\n defaultPreventedPreservedOnDispatch,\n find,\n findOne\n }\n})()\n\nexport default Polyfill\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from '../util/index'\nimport Polyfill from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu',\n 'mousewheel', 'DOMMouseScroll',\n 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend',\n 'keydown', 'keypress', 'keyup',\n 'orientationchange',\n 'touchstart', 'touchmove', 'touchend', 'touchcancel',\n 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel',\n 'gesturestart', 'gesturechange', 'gestureend',\n 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout',\n 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange',\n 'error', 'abort', '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 element.uidEvent = uid\n\n return eventRegistry[uid] = 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.charCode : event.keyCode\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 && 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 uidList = Object.keys(events)\n\n for (let i = 0; i < uidList.length; i++) {\n const uid = uidList[i]\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\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 ? bootstrapHandler(element, handler) : bootstrapDelegationHandler(element, handler, delegationFn)\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 === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach((handlerKey) => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach((elementEvent) => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach((keyHandlers) => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = 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 (!Polyfill.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/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Polyfill from './polyfill'\nimport {\n makeArray\n} from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst findFn = Polyfill.find\nconst findOne = Polyfill.findOne\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 if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter((child) => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return element.closest(selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, (event) => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input:not([type=\"hidden\"])',\n ACTIVE : '.active',\n BUTTON : '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API : `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n 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 button.classList.add(ClassName.FOCUS)\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.remove(ClassName.FOCUS)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, (chr) => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach((key) => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true,\n touch : true\n}\n\nconst DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean',\n touch : 'boolean'\n}\n\nconst Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n}\n\nconst Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHSTART : `touchstart${EVENT_KEY}`,\n TOUCHMOVE : `touchmove${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n POINTERDOWN : `pointerdown${EVENT_KEY}`,\n POINTERUP : `pointerup${EVENT_KEY}`,\n DRAG_START : `dragstart${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item',\n POINTER_EVENT : 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n ITEM_IMG : '.carousel-item img',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH : 'touch',\n PEN : 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, (event) => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, (event) => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = (event) => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = (event) => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = (event) => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach((itemImg) => {\n EventHandler.on(itemImg, Event.DRAG_START, (e) => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, (event) => start(event))\n EventHandler.on(this._element, Event.POINTERUP, (event) => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, (event) => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, (event) => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, (event) => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode\n ? makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode))\n : []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new Error(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle : true,\n parent : ''\n}\n\nconst DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n}\n\nconst Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n}\n\nconst Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n}\n\nconst Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter((foundElem) => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter((elem) => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter((elem) => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach((elemActive) => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach((element) => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (isElement(this._config.parent)) {\n parent = this._config.parent\n\n // it's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined' || typeof this._config.parent[0] !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(this._config.parent)\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach((element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach((elem) => {\n if (!isOpen) {\n elem.classList.add(ClassName.COLLAPSED)\n } else {\n elem.classList.remove(ClassName.COLLAPSED)\n }\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach((element) => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n}\n\nconst Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n}\n\nconst DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach((elem) => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach((elem) => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n}\n\nconst DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE : 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n DIALOG : '.modal-dialog',\n MODAL_BODY : '.modal-body',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, (event) => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, (event) => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach((htmlElement) => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE)\n ? ClassName.FADE\n : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach((element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach((element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach((element) => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach((element) => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n } else {\n document.body.style.paddingRight = ''\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY)\n ? 'toggle' : {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, (showEvent) => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n makeArray\n} from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach((attr) => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\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\n\nconst DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string|function)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)',\n sanitize : 'boolean',\n sanitizeFn : '(null|function)',\n whiteList : 'object'\n}\n\nconst AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n}\n\nconst Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent',\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW : 'show',\n OUT : 'out'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n TOOLTIP_ARROW : '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n}\n\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot !== null\n ? shadowRoot.contains(this.element)\n : this.element.ownerDocument.documentElement.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach((element) => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach((element) => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach((dataAttr) => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map((token) => token.trim())\n .forEach((tClass) => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n}\n\nconst ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map((token) => token.trim())\n .forEach((tClass) => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset : 10,\n method : 'auto',\n target : ''\n}\n\nconst DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n}\n\nconst Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n}\n\nconst Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\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.id\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\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 : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\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 return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map((selector) => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach((listGroup) => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach((item) => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach((navItem) => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach((item) => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter((node) => node.classList.contains(ClassName.ACTIVE))\n .forEach((node) => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach((spy) => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : ':scope > li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL')\n ? SelectorEngine.find(Selector.ACTIVE_UL, container)\n : SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach((dropdown) => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE : 'fade',\n HIDE : 'hide',\n SHOW : 'show',\n SHOWING : 'showing'\n}\n\nconst DefaultType = {\n animation : 'boolean',\n autohide : 'boolean',\n delay : 'number'\n}\n\nconst Default = {\n animation : true,\n autohide : true,\n delay : 500\n}\n\nconst Selector = {\n DATA_DISMISS : '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport ScrollSpy from './scrollspy'\nimport Tab from './tab'\nimport Toast from './toast'\nimport Tooltip from './tooltip'\n\nexport {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","jQuery","window","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","err","getTransitionDurationFromElement","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","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Polyfill","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","find","Element","prototype","querySelectorAll","findOne","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","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","uidList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","evt","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","findFn","NODE_TEXT","SelectorEngine","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","MENULEFT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","TypeError","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP","TOOLTIP_INNER","TOOLTIP_ARROW","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DROPDOWN_MENU","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","SHOWING","autohide","Toast","withoutTimeout","_close"],"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/eventHandler.js","../../js/src/dom/selectorEngine.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/dom/manipulator.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/util/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/index.umd.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n 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 makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/**\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 {\n getUID\n} from '../util/index'\n\n/* istanbul ignore next */\nconst Polyfill = (() => {\n // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\n const 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\n let find = Element.prototype.querySelectorAll\n let findOne = Element.prototype.querySelector\n\n const scopeSelectorRegex = /:scope\\b/\n const supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n })()\n\n if (!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\n return {\n defaultPreventedPreservedOnDispatch,\n find,\n findOne\n }\n})()\n\nexport default Polyfill\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from '../util/index'\nimport Polyfill from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidList = Object.keys(events)\n\n for (let i = 0; i < uidList.length; i++) {\n const uid = uidList[i]\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = 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 (!Polyfill.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/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Polyfill from './polyfill'\nimport {\n makeArray\n} from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst { find: findFn, findOne } = Polyfill\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 if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return element.closest(selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.add(ClassName.FOCUS)\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.remove(ClassName.FOCUS)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n makeArray\n} from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","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","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","noop","reflow","offsetHeight","mapData","storeData","id","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Polyfill","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","find","Element","prototype","querySelectorAll","findOne","scopeSelectorRegex","supportScopeQuery","hasId","Boolean","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","uidList","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeNamespacedHandlers","namespace","storeElementEvent","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","evt","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","findFn","NODE_TEXT","SelectorEngine","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","siblings","previous","previousSibling","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Selector","DISMISS","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","itemImg","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slideEvent","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","startEvent","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","complete","capitalizedDimension","scrollSize","triggerArrayLength","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","selectorElements","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","elements","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP_INNER","TOOLTIP_ARROW","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","innerText","textContent","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","link","join","listGroup","navItem","node","spy","DROPDOWN_MENU","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","listElement","itemSelector","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdown","SHOWING","autohide","Toast","withoutTimeout","_close"],"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 455810d6a2..5b8b5a8e46 100644
--- a/dist/js/bootstrap.min.js
+++ b/dist/js/bootstrap.min.js
@@ -3,5 +3,5 @@
* Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
-!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("popper.js")):"function"==typeof define&&define.amd?define(["exports","popper.js"],e):e((t=t||self).bootstrap={},t.Popper)}(this,function(t,e){"use strict";function n(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 i(t,e,i){return e&&n(t.prototype,e),i&&n(t,i),t}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function s(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},i=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),i.forEach(function(e){o(t,e,n[e])})}return t}e=e&&e.hasOwnProperty("default")?e.default:e;var r,a,l,c,u,h,f,d,g="transitionend",_=window.jQuery,p=function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},m=function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},v=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},E=function(t){t.dispatchEvent(new Event(g))},y=function(t){return(t[0]||t).nodeType},b=function(t,e){var n=!1,i=e+5;t.addEventListener(g,function e(){n=!0,t.removeEventListener(g,e)}),setTimeout(function(){n||E(t)},i)},D=function(t,e,n){Object.keys(n).forEach(function(i){var o,s=n[i],r=e[i],a=r&&y(r)?"element":(o=r,{}.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+'".')})},T=function(t){return t?[].slice.call(t):[]},I=function(t){return!!t&&(!!(t.style&&t.parentNode&&t.parentNode.style)&&("none"!==t.style.display&&"none"!==t.parentNode.style.display&&"hidden"!==t.style.visibility))},A=function(){return function(){}},S=function(t){return t.offsetHeight},w=(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={setData:function(t,e,n){w.set(t,e,n)},getData:function(t,e){return w.get(t,e)},removeData:function(t,e){w.delete(t,e)}},O=(l=new CustomEvent("Bootstrap",{cancelable:!0}),(c=document.createElement("div")).addEventListener("Bootstrap",function(){return null}),l.preventDefault(),c.dispatchEvent(l),u=l.defaultPrevented,h=Element.prototype.querySelectorAll,f=Element.prototype.querySelector,d=/:scope\b/,function(){var t=document.createElement("div");try{t.querySelectorAll(":scope *")}catch(t){return!1}return!0}()||(h=function(t){if(!d.test(t))return this.querySelectorAll(t);var e=Boolean(this.id);e||(this.id=p("scope"));var n=null;try{t=t.replace(d,"#"+this.id),n=this.querySelectorAll(t)}finally{e||this.removeAttribute("id")}return n},f=function(t){if(!d.test(t))return this.querySelector(t);var e=h.call(this,t);return void 0!==e[0]?e[0]:null}),{defaultPreventedPreservedOnDispatch:u,find:h,findOne:f}),C=/[^.]*(?=\..*)\.|.*/,N=/\..*/,k=/^key/,P=/::\d+$/,H={},j=1,M={mouseenter:"mouseover",mouseleave:"mouseout"},R=["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"];function x(t,e){return e&&e+"::"+j++||t.uidEvent||j++}function W(t){var e=x(t);return t.uidEvent=e,H[e]=H[e]||{}}function U(t,e){null===t.which&&k.test(t.type)&&(t.which=null!==t.charCode?t.charCode:t.keyCode),t.delegateTarget=e}function K(t,e,n){void 0===n&&(n=null);for(var i=Object.keys(t),o=0;o<i.length;o++){var s=i[o],r=t[s];if(r.originalHandler===e&&r.delegationSelector===n)return t[s]}return null}function V(t,e,n){var i="string"==typeof e,o=i?n:e,s=t.replace(N,""),r=M[s];return r&&(s=r),R.indexOf(s)>-1||(s=t),[i,o,s]}function B(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=W(t),u=c[l]||(c[l]={}),h=K(u,a,r?n:null);if(h)h.oneOff=h.oneOff&&o;else{var f=x(a,e.replace(C,"")),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 U(o,r),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 U(i,t),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=f,u[f]=d,t.addEventListener(l,d,r)}}}function F(t,e,n,i,o){var s=K(e[n],i,o);null!==s&&(t.removeEventListener(n,s,Boolean(o)),delete e[n][s.uidEvent])}var Q={on:function(t,e,n,i){B(t,e,n,i,!1)},one:function(t,e,n,i){B(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=W(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];F(t,e,n,r.originalHandler,r.delegationSelector)}})}(t,c,n,e.substr(1))});var h=c[a]||{};Object.keys(h).forEach(function(n){var i=n.replace(P,"");if(!l||e.indexOf(i)>-1){var o=h[n];F(t,c,a,o.originalHandler,o.delegationSelector)}})}else{if(!c||!c[a])return;F(t,c,a,r,s?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=e.replace(N,""),s=e!==o,r=R.indexOf(o)>-1,a=!0,l=!0,c=!1,u=null;return s&&void 0!==_&&(i=_.Event(e,n),_(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.defaultPreventedPreservedOnDispatch||Object.defineProperty(u,"defaultPrevented",{get:function(){return!0}})),l&&t.dispatchEvent(u),u.defaultPrevented&&void 0!==i&&i.preventDefault(),u}},Y=O.find,G=O.findOne,X={matches:function(t,e){return t.matches(e)},find:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:Y.call(e,t)},findOne:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:G.call(e,t)},children:function(t,e){var n=this;if("string"!=typeof e)return null;var i=T(t.children);return i.filter(function(t){return n.matches(t,e)})},parents:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.parentNode;return n},closest:function(t,e){return"string"!=typeof e?null:t.closest(e)},prev:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.previousSibling;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.previousSibling;return n}},q="bs.alert",z="."+q,Z={CLOSE:"close"+z,CLOSED:"closed"+z,CLICK_DATA_API:"click"+z+".data-api"},$="alert",J="fade",tt="show",et=function(){function t(t){this._element=t,this._element&&L.setData(t,q,this)}var e=t.prototype;return e.close=function(t){var e=this._element;t&&(e=this._getRootElement(t));var n=this._triggerCloseEvent(e);null===n||n.defaultPrevented||this._removeElement(e)},e.dispose=function(){L.removeData(this._element,q),this._element=null},e._getRootElement=function(t){var e=m(t),n=!1;return e&&(n=X.findOne(e)),n||(n=X.closest(t,"."+$)),n},e._triggerCloseEvent=function(t){return Q.trigger(t,Z.CLOSE)},e._removeElement=function(t){var e=this;if(t.classList.remove(tt),t.classList.contains(J)){var n=v(t);Q.one(t,g,function(n){return e._destroyElement(t,n)}),b(t,n)}else this._destroyElement(t)},e._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),Q.trigger(t,Z.CLOSED)},t._jQueryInterface=function(e){return this.each(function(){var n=L.getData(this,q);n||(n=new t(this)),"close"===e&&n[e](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},t._getInstance=function(t){return L.getData(t,q)},i(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(Q.on(document,Z.CLICK_DATA_API,'[data-dismiss="alert"]',et._handleDismiss(new et)),void 0!==_){var nt=_.fn.alert;_.fn.alert=et._jQueryInterface,_.fn.alert.Constructor=et,_.fn.alert.noConflict=function(){return _.fn.alert=nt,et._jQueryInterface}}var it="bs.button",ot="."+it,st="active",rt="btn",at="focus",lt='[data-toggle^="button"]',ct='[data-toggle="buttons"]',ut='input:not([type="hidden"])',ht=".active",ft=".btn",dt={CLICK_DATA_API:"click"+ot+".data-api",FOCUS_DATA_API:"focus"+ot+".data-api",BLUR_DATA_API:"blur"+ot+".data-api"},gt=function(){function t(t){this._element=t,L.setData(t,it,this)}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=X.closest(this._element,ct);if(n){var i=X.findOne(ut,this._element);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(st))t=!1;else{var o=X.findOne(ht,n);o&&o.classList.remove(st)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(st),Q.trigger(i,"change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(st)),t&&this._element.classList.toggle(st)},e.dispose=function(){L.removeData(this._element,it),this._element=null},t._jQueryInterface=function(e){return this.each(function(){var n=L.getData(this,it);n||(n=new t(this)),"toggle"===e&&n[e]()})},t._getInstance=function(t){return L.getData(t,it)},i(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(Q.on(document,dt.CLICK_DATA_API,lt,function(t){t.preventDefault();var e=t.target;e.classList.contains(rt)||(e=X.closest(e,ft));var n=L.getData(e,it);n||(n=new gt(e),L.setData(e,it,n)),n.toggle()}),Q.on(document,dt.FOCUS_DATA_API,lt,function(t){X.closest(t.target,ft).classList.add(at)}),Q.on(document,dt.BLUR_DATA_API,lt,function(t){X.closest(t.target,ft).classList.remove(at)}),void 0!==_){var _t=_.fn.button;_.fn.button=gt._jQueryInterface,_.fn.button.Constructor=gt,_.fn.button.noConflict=function(){return _.fn.button=_t,gt._jQueryInterface}}function pt(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function mt(t){return t.replace(/[A-Z]/g,function(t){return t.toLowerCase()})}var vt={setDataAttribute:function(t,e,n){t.setAttribute("data-"+mt(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+mt(e))},getDataAttributes:function(t){if(!t)return{};var e=s({},t.dataset);return Object.keys(e).forEach(function(t){e[t]=pt(e[t])}),e},getDataAttribute:function(t,e){return pt(t.getAttribute("data-"+mt(e)))},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:function(t){return{top:t.offsetTop,left:t.offsetLeft}},toggleClass:function(t,e){t&&(t.classList.contains(e)?t.classList.remove(e):t.classList.add(e))}},Et="carousel",yt="bs.carousel",bt="."+yt,Dt={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Tt={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},It="next",At="prev",St="left",wt="right",Lt={SLIDE:"slide"+bt,SLID:"slid"+bt,KEYDOWN:"keydown"+bt,MOUSEENTER:"mouseenter"+bt,MOUSELEAVE:"mouseleave"+bt,TOUCHSTART:"touchstart"+bt,TOUCHMOVE:"touchmove"+bt,TOUCHEND:"touchend"+bt,POINTERDOWN:"pointerdown"+bt,POINTERUP:"pointerup"+bt,DRAG_START:"dragstart"+bt,LOAD_DATA_API:"load"+bt+".data-api",CLICK_DATA_API:"click"+bt+".data-api"},Ot="carousel",Ct="active",Nt="slide",kt="carousel-item-right",Pt="carousel-item-left",Ht="carousel-item-next",jt="carousel-item-prev",Mt="pointer-event",Rt={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",ITEM_IMG:".carousel-item img",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},xt={TOUCH:"touch",PEN:"pen"},Wt=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=X.findOne(Rt.INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),L.setData(t,yt,this)}var e=t.prototype;return e.next=function(){this._isSliding||this._slide(It)},e.nextWhenVisible=function(){!document.hidden&&I(this._element)&&this.next()},e.prev=function(){this._isSliding||this._slide(At)},e.pause=function(t){t||(this._isPaused=!0),X.findOne(Rt.NEXT_PREV,this._element)&&(E(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null},e.cycle=function(t){t||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))},e.to=function(t){var e=this;this._activeElement=X.findOne(Rt.ACTIVE_ITEM,this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)Q.one(this._element,Lt.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=t>n?It:At;this._slide(i,this._items[t])}},e.dispose=function(){Q.off(this._element,bt),L.removeData(this._element,yt),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=s({},Dt,t),D(Et,t,Tt),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&Q.on(this._element,Lt.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(Q.on(this._element,Lt.MOUSEENTER,function(e){return t.pause(e)}),Q.on(this._element,Lt.MOUSELEAVE,function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&xt[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&xt[e.pointerType.toUpperCase()]&&(t.touchDeltaX=e.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval))};T(X.find(Rt.ITEM_IMG,this._element)).forEach(function(t){Q.on(t,Lt.DRAG_START,function(t){return t.preventDefault()})}),this._pointerEvent?(Q.on(this._element,Lt.POINTERDOWN,function(t){return e(t)}),Q.on(this._element,Lt.POINTERUP,function(t){return n(t)}),this._element.classList.add(Mt)):(Q.on(this._element,Lt.TOUCHSTART,function(t){return e(t)}),Q.on(this._element,Lt.TOUCHMOVE,function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)}),Q.on(this._element,Lt.TOUCHEND,function(t){return n(t)}))}},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?T(X.find(Rt.ITEM,t.parentNode)):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n=t===It,i=t===At,o=this._getItemIndex(e),s=this._items.length-1;if((i&&0===o||n&&o===s)&&!this._config.wrap)return e;var r=(o+(t===At?-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(Rt.ACTIVE_ITEM,this._element));return Q.trigger(this._element,Lt.SLIDE,{relatedTarget:t,direction:e,from:i,to:n})},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=X.find(Rt.ACTIVE,this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove(Ct);var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add(Ct)}},e._slide=function(t,e){var n,i,o,s=this,r=X.findOne(Rt.ACTIVE_ITEM,this._element),a=this._getItemIndex(r),l=e||r&&this._getItemByDirection(t,r),c=this._getItemIndex(l),u=Boolean(this._interval);if(t===It?(n=Pt,i=Ht,o=St):(n=kt,i=jt,o=wt),l&&l.classList.contains(Ct))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(Nt)){l.classList.add(i),S(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=v(r);Q.one(r,g,function(){l.classList.remove(n),l.classList.remove(i),l.classList.add(Ct),r.classList.remove(Ct),r.classList.remove(i),r.classList.remove(n),s._isSliding=!1,setTimeout(function(){Q.trigger(s._element,Lt.SLID,{relatedTarget:l,direction:o,from:a,to:c})},0)}),b(r,f)}else r.classList.remove(Ct),l.classList.add(Ct),this._isSliding=!1,Q.trigger(this._element,Lt.SLID,{relatedTarget:l,direction:o,from:a,to:c});u&&this.cycle()}},t._carouselInterface=function(e,n){var i=L.getData(e,yt),o=s({},Dt,vt.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 Error('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=m(this);if(n){var i=X.findOne(n);if(i&&i.classList.contains(Ot)){var o=s({},vt.getDataAttributes(i),vt.getDataAttributes(this)),r=this.getAttribute("data-slide-to");r&&(o.interval=!1),t._carouselInterface(i,o),r&&L.getData(i,yt).to(r),e.preventDefault()}}},t._getInstance=function(t){return L.getData(t,yt)},i(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Dt}}]),t}();if(Q.on(document,Lt.CLICK_DATA_API,Rt.DATA_SLIDE,Wt._dataApiClickHandler),Q.on(window,Lt.LOAD_DATA_API,function(){for(var t=T(X.find(Rt.DATA_RIDE)),e=0,n=t.length;e<n;e++)Wt._carouselInterface(t[e],L.getData(t[e],yt))}),void 0!==_){var Ut=_.fn[Et];_.fn[Et]=Wt._jQueryInterface,_.fn[Et].Constructor=Wt,_.fn[Et].noConflict=function(){return _.fn[Et]=Ut,Wt._jQueryInterface}}var Kt="collapse",Vt="bs.collapse",Bt="."+Vt,Ft={toggle:!0,parent:""},Qt={toggle:"boolean",parent:"(string|element)"},Yt={SHOW:"show"+Bt,SHOWN:"shown"+Bt,HIDE:"hide"+Bt,HIDDEN:"hidden"+Bt,CLICK_DATA_API:"click"+Bt+".data-api"},Gt="show",Xt="collapse",qt="collapsing",zt="collapsed",Zt="width",$t="height",Jt={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},te=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=T(X.find('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=T(X.find(Jt.DATA_TOGGLE)),i=0,o=n.length;i<o;i++){var s=n[i],r=m(s),a=T(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.setData(t,Vt,this)}var e=t.prototype;return e.toggle=function(){this._element.classList.contains(Gt)?this.hide():this.show()},e.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains(Gt)){var n,i;this._parent&&0===(n=T(X.find(Jt.ACTIVES,this._parent)).filter(function(t){return"string"==typeof e._config.parent?t.getAttribute("data-parent")===e._config.parent:t.classList.contains(Xt)})).length&&(n=null);var o=X.findOne(this._selector);if(n){var s=n.filter(function(t){return o!==t});if((i=s[0]?L.getData(s[0],Vt):null)&&i._isTransitioning)return}if(!Q.trigger(this._element,Yt.SHOW).defaultPrevented){n&&n.forEach(function(e){o!==e&&t._collapseInterface(e,"hide"),i||L.setData(e,Vt,null)});var r=this._getDimension();this._element.classList.remove(Xt),this._element.classList.add(qt),this._element.style[r]=0,this._triggerArray.length&&this._triggerArray.forEach(function(t){t.classList.remove(zt),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);var a="scroll"+(r[0].toUpperCase()+r.slice(1)),l=v(this._element);Q.one(this._element,g,function(){e._element.classList.remove(qt),e._element.classList.add(Xt),e._element.classList.add(Gt),e._element.style[r]="",e.setTransitioning(!1),Q.trigger(e._element,Yt.SHOWN)}),b(this._element,l),this._element.style[r]=this._element[a]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains(Gt)&&!Q.trigger(this._element,Yt.HIDE).defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",S(this._element),this._element.classList.add(qt),this._element.classList.remove(Xt),this._element.classList.remove(Gt);var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],s=m(o);if(null!==s)X.findOne(s).classList.contains(Gt)||(o.classList.add(zt),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var r=v(this._element);Q.one(this._element,g,function(){t.setTransitioning(!1),t._element.classList.remove(qt),t._element.classList.add(Xt),Q.trigger(t._element,Yt.HIDDEN)}),b(this._element,r)}},e.setTransitioning=function(t){this._isTransitioning=t},e.dispose=function(){L.removeData(this._element,Vt),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(t){return(t=s({},Ft,t)).toggle=Boolean(t.toggle),D(Kt,t,Qt),t},e._getDimension=function(){return this._element.classList.contains(Zt)?Zt:$t},e._getParent=function(){var e,n=this;y(this._config.parent)?(e=this._config.parent,void 0===this._config.parent.jquery&&void 0===this._config.parent[0]||(e=this._config.parent[0])):e=X.findOne(this._config.parent);var i='[data-toggle="collapse"][data-parent="'+this._config.parent+'"]';return T(X.find(i,e)).forEach(function(e){n._addAriaAndCollapsedClass(t._getTargetFromElement(e),[e])}),e},e._addAriaAndCollapsedClass=function(t,e){if(t){var n=t.classList.contains(Gt);e.length&&e.forEach(function(t){n?t.classList.remove(zt):t.classList.add(zt),t.setAttribute("aria-expanded",n)})}},t._getTargetFromElement=function(t){var e=m(t);return e?X.findOne(e):null},t._collapseInterface=function(e,n){var i=L.getData(e,Vt),o=s({},Ft,vt.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 Error('No method named "'+n+'"');i[n]()}},t._jQueryInterface=function(e){return this.each(function(){t._collapseInterface(this,e)})},t._getInstance=function(t){return L.getData(t,Vt)},i(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ft}}]),t}();if(Q.on(document,Yt.CLICK_DATA_API,Jt.DATA_TOGGLE,function(t){"A"===t.target.tagName&&t.preventDefault();var e=vt.getDataAttributes(this),n=m(this);T(X.find(n)).forEach(function(t){var n,i=L.getData(t,Vt);i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,te._collapseInterface(t,n)})}),void 0!==_){var ee=_.fn[Kt];_.fn[Kt]=te._jQueryInterface,_.fn[Kt].Constructor=te,_.fn[Kt].noConflict=function(){return _.fn[Kt]=ee,te._jQueryInterface}}var ne="dropdown",ie="bs.dropdown",oe="."+ie,se=new RegExp("38|40|27"),re={HIDE:"hide"+oe,HIDDEN:"hidden"+oe,SHOW:"show"+oe,SHOWN:"shown"+oe,CLICK:"click"+oe,CLICK_DATA_API:"click"+oe+".data-api",KEYDOWN_DATA_API:"keydown"+oe+".data-api",KEYUP_DATA_API:"keyup"+oe+".data-api"},ae="disabled",le="show",ce="dropup",ue="dropright",he="dropleft",fe="dropdown-menu-right",de="position-static",ge='[data-toggle="dropdown"]',_e=".dropdown form",pe=".dropdown-menu",me=".navbar-nav",ve=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",Ee="top-start",ye="top-end",be="bottom-start",De="bottom-end",Te="right-start",Ie="left-start",Ae={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Se={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},we=function(){function t(t,e){this._element=t,this._popper=null,this._config=this._getConfig(e),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners(),L.setData(t,ie,this)}var n=t.prototype;return n.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains(ae)){var n=t._getParentFromElement(this._element),i=this._menu.classList.contains(le);if(t._clearMenus(),!i){var o={relatedTarget:this._element};if(!Q.trigger(n,re.SHOW,o).defaultPrevented){if(!this._inNavbar){if(void 0===e)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var s=this._element;"parent"===this._config.reference?s=n:y(this._config.reference)&&(s=this._config.reference,void 0!==this._config.reference.jquery&&(s=this._config.reference[0])),"scrollParent"!==this._config.boundary&&n.classList.add(de),this._popper=new e(s,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&!T(X.closest(n,me)).length&&T(document.body.children).forEach(function(t){return Q.on(t,"mouseover",null,function(){})}),this._element.focus(),this._element.setAttribute("aria-expanded",!0),vt.toggleClass(this._menu,le),vt.toggleClass(n,le),Q.trigger(n,re.SHOWN,o)}}}},n.show=function(){if(!(this._element.disabled||this._element.classList.contains(ae)||this._menu.classList.contains(le))){var e=t._getParentFromElement(this._element),n={relatedTarget:this._element};Q.trigger(e,re.SHOW,n).defaultPrevented||(vt.toggleClass(this._menu,le),vt.toggleClass(e,le),Q.trigger(e,re.SHOWN,n))}},n.hide=function(){if(!this._element.disabled&&!this._element.classList.contains(ae)&&this._menu.classList.contains(le)){var e=t._getParentFromElement(this._element),n={relatedTarget:this._element};Q.trigger(e,re.HIDE,n).defaultPrevented||(vt.toggleClass(this._menu,le),vt.toggleClass(e,le),Q.trigger(e,re.HIDDEN,n))}},n.dispose=function(){L.removeData(this._element,ie),Q.off(this._element,oe),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},n.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},n._addEventListeners=function(){var t=this;Q.on(this._element,re.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},n._getConfig=function(t){return t=s({},this.constructor.Default,vt.getDataAttributes(this._element),t),D(ne,t,this.constructor.DefaultType),t},n._getMenuElement=function(){if(!this._menu){var e=t._getParentFromElement(this._element);e&&(this._menu=X.findOne(pe,e))}return this._menu},n._getPlacement=function(){var t=this._element.parentNode,e=be;return t.classList.contains(ce)?(e=Ee,this._menu.classList.contains(fe)&&(e=ye)):t.classList.contains(ue)?e=Te:t.classList.contains(he)?e=Ie:this._menu.classList.contains(fe)&&(e=De),e},n._detectNavbar=function(){return Boolean(X.closest(this._element,".navbar"))},n._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=s({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},n._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),t},t._dropdownInterface=function(e,n){var i=L.getData(e,ie);if(i||(i=new t(e,"object"==typeof n?n:null)),"string"==typeof n){if(void 0===i[n])throw new Error('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=T(X.find(ge)),i=0,o=n.length;i<o;i++){var s=t._getParentFromElement(n[i]),r=L.getData(n[i],ie),a={relatedTarget:n[i]};if(e&&"click"===e.type&&(a.clickEvent=e),r){var l=r._menu;if(s.classList.contains(le))if(!(e&&("click"===e.type&&/input|textarea/i.test(e.target.tagName)||"keyup"===e.type&&9===e.which)&&s.contains(e.target)))Q.trigger(s,re.HIDE,a).defaultPrevented||("ontouchstart"in document.documentElement&&T(document.body.children).forEach(function(t){return Q.off(t,"mouseover",null,function(){})}),n[i].setAttribute("aria-expanded","false"),l.classList.remove(le),s.classList.remove(le),Q.trigger(s,re.HIDDEN,a))}}},t._getParentFromElement=function(t){var e,n=m(t);return n&&(e=X.findOne(n)),e||t.parentNode},t._dataApiKeydownHandler=function(e){if((/input|textarea/i.test(e.target.tagName)?!(32===e.which||27!==e.which&&(40!==e.which&&38!==e.which||X.closest(e.target,pe))):se.test(e.which))&&(e.preventDefault(),e.stopPropagation(),!this.disabled&&!this.classList.contains(ae))){var n=t._getParentFromElement(this),i=n.classList.contains(le);if(!i||i&&(27===e.which||32===e.which))return 27===e.which&&Q.trigger(X.findOne(ge,n),"focus"),void t._clearMenus();var o=T(X.find(ve,n));if(o.length){var s=o.indexOf(e.target);38===e.which&&s>0&&s--,40===e.which&&s<o.length-1&&s++,s<0&&(s=0),o[s].focus()}}},t._getInstance=function(t){return L.getData(t,ie)},i(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ae}},{key:"DefaultType",get:function(){return Se}}]),t}();if(Q.on(document,re.KEYDOWN_DATA_API,ge,we._dataApiKeydownHandler),Q.on(document,re.KEYDOWN_DATA_API,pe,we._dataApiKeydownHandler),Q.on(document,re.CLICK_DATA_API,we._clearMenus),Q.on(document,re.KEYUP_DATA_API,we._clearMenus),Q.on(document,re.CLICK_DATA_API,ge,function(t){t.preventDefault(),t.stopPropagation(),we._dropdownInterface(this,"toggle")}),Q.on(document,re.CLICK_DATA_API,_e,function(t){return t.stopPropagation()}),void 0!==_){var Le=_.fn[ne];_.fn[ne]=we._jQueryInterface,_.fn[ne].Constructor=we,_.fn[ne].noConflict=function(){return _.fn[ne]=Le,we._jQueryInterface}}var Oe="bs.modal",Ce="."+Oe,Ne={backdrop:!0,keyboard:!0,focus:!0,show:!0},ke={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},Pe={HIDE:"hide"+Ce,HIDDEN:"hidden"+Ce,SHOW:"show"+Ce,SHOWN:"shown"+Ce,FOCUSIN:"focusin"+Ce,RESIZE:"resize"+Ce,CLICK_DISMISS:"click.dismiss"+Ce,KEYDOWN_DISMISS:"keydown.dismiss"+Ce,MOUSEUP_DISMISS:"mouseup.dismiss"+Ce,MOUSEDOWN_DISMISS:"mousedown.dismiss"+Ce,CLICK_DATA_API:"click"+Ce+".data-api"},He="modal-dialog-scrollable",je="modal-scrollbar-measure",Me="modal-backdrop",Re="modal-open",xe="fade",We="show",Ue={DIALOG:".modal-dialog",MODAL_BODY:".modal-body",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top"},Ke=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=X.findOne(Ue.DIALOG,t),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,L.setData(t,Oe,this)}var e=t.prototype;return e.toggle=function(t){return this._isShown?this.hide():this.show(t)},e.show=function(t){var e=this;if(!this._isShown&&!this._isTransitioning){this._element.classList.contains(xe)&&(this._isTransitioning=!0);var n=Q.trigger(this._element,Pe.SHOW,{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),Q.on(this._element,Pe.CLICK_DISMISS,Ue.DATA_DISMISS,function(t){return e.hide(t)}),Q.on(this._dialog,Pe.MOUSEDOWN_DISMISS,function(){Q.one(e._element,Pe.MOUSEUP_DISMISS,function(t){t.target===e._element&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},e.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=Q.trigger(this._element,Pe.HIDE);if(this._isShown&&!n.defaultPrevented){this._isShown=!1;var i=this._element.classList.contains(xe);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),Q.off(document,Pe.FOCUSIN),this._element.classList.remove(We),Q.off(this._element,Pe.CLICK_DISMISS),Q.off(this._dialog,Pe.MOUSEDOWN_DISMISS),i){var o=v(this._element);Q.one(this._element,g,function(t){return e._hideModal(t)}),b(this._element,o)}else this._hideModal()}}},e.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return Q.off(t,Ce)}),Q.off(document,Pe.FOCUSIN),L.removeData(this._element,Oe),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({},Ne,t),D("modal",t,ke),t},e._showElement=function(t){var e=this,n=this._element.classList.contains(xe);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._dialog.classList.contains(He)?X.findOne(Ue.MODAL_BODY,this._dialog).scrollTop=0:this._element.scrollTop=0,n&&S(this._element),this._element.classList.add(We),this._config.focus&&this._enforceFocus();var i=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,Q.trigger(e._element,Pe.SHOWN,{relatedTarget:t})};if(n){var o=v(this._dialog);Q.one(this._dialog,g,i),b(this._dialog,o)}else i()},e._enforceFocus=function(){var t=this;Q.off(document,Pe.FOCUSIN),Q.on(document,Pe.FOCUSIN,function(e){document===e.target||t._element===e.target||t._element.contains(e.target)||t._element.focus()})},e._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?Q.on(this._element,Pe.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):this._isShown||Q.off(this._element,Pe.KEYDOWN_DISMISS)},e._setResizeEvent=function(){var t=this;this._isShown?Q.on(window,Pe.RESIZE,function(e){return t.handleUpdate(e)}):Q.off(window,Pe.RESIZE)},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){document.body.classList.remove(Re),t._resetAdjustments(),t._resetScrollbar(),Q.trigger(t._element,Pe.HIDDEN)})},e._removeBackdrop=function(){this._backdrop&&(this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null)},e._showBackdrop=function(t){var e=this,n=this._element.classList.contains(xe)?xe:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=Me,n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),Q.on(this._element,Pe.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&S(this._backdrop),this._backdrop.classList.add(We),!t)return;if(!n)return void t();var i=v(this._backdrop);Q.one(this._backdrop,g,t),b(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove(We);var o=function(){e._removeBackdrop(),t&&t()};if(this._element.classList.contains(xe)){var s=v(this._backdrop);Q.one(this._backdrop,g,o),b(this._backdrop,s)}else o()}else t&&t()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){T(X.find(Ue.FIXED_CONTENT)).forEach(function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];vt.setDataAttribute(e,"padding-right",n),e.style.paddingRight=parseFloat(i)+t._scrollbarWidth+"px"}),T(X.find(Ue.STICKY_CONTENT)).forEach(function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];vt.setDataAttribute(e,"margin-right",n),e.style.marginRight=parseFloat(i)-t._scrollbarWidth+"px"});var e=document.body.style.paddingRight,n=window.getComputedStyle(document.body)["padding-right"];vt.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add(Re)},e._resetScrollbar=function(){T(X.find(Ue.FIXED_CONTENT)).forEach(function(t){var e=vt.getDataAttribute(t,"padding-right");void 0!==e&&(vt.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)}),T(X.find(""+Ue.STICKY_CONTENT)).forEach(function(t){var e=vt.getDataAttribute(t,"margin-right");void 0!==e&&(vt.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)});var t=vt.getDataAttribute(document.body,"padding-right");void 0!==t?(vt.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t):document.body.style.paddingRight=""},e._getScrollbarWidth=function(){var t=document.createElement("div");t.className=je,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.getData(this,Oe),o=s({},Ne,vt.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.getData(t,Oe)},i(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ne}}]),t}();if(Q.on(document,Pe.CLICK_DATA_API,Ue.DATA_TOGGLE,function(t){var e,n=this,i=m(this);i&&(e=X.findOne(i));var o=L.getData(e,Oe)?"toggle":s({},vt.getDataAttributes(e),vt.getDataAttributes(this));"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),Q.one(e,Pe.SHOW,function(t){t.defaultPrevented||Q.one(e,Pe.HIDDEN,function(){I(n)&&n.focus()})});var r=L.getData(e,Oe);r||(r=new Ke(e,o)),r.show(this)}),void 0!==_){var Ve=_.fn.modal;_.fn.modal=Ke._jQueryInterface,_.fn.modal.Constructor=Ke,_.fn.modal.noConflict=function(){return _.fn.modal=Ve,Ke._jQueryInterface}}var Be=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Fe=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,Qe=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,Ye=function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Be.indexOf(n)||Boolean(t.nodeValue.match(Fe)||t.nodeValue.match(Qe));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,s=i.length;o<s;o++)if(n.match(i[o]))return!0;return!1},Ge={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function Xe(t,e,n){if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),s=T(i.body.querySelectorAll("*")),r=function(t,n){var i=s[t],r=i.nodeName.toLowerCase();if(-1===o.indexOf(r))return i.parentNode.removeChild(i),"continue";var a=T(i.attributes),l=[].concat(e["*"]||[],e[r]||[]);a.forEach(function(t){Ye(t,l)||i.removeAttribute(t.nodeName)})},a=0,l=s.length;a<l;a++)r(a);return i.body.innerHTML}var qe="tooltip",ze=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Ze=["sanitize","whiteList","sanitizeFn"],$e={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(number|string|function)",container:"(string|element|boolean)",fallbackPlacement:"(string|array)",boundary:"(string|element)",sanitize:"boolean",sanitizeFn:"(null|function)",whiteList:"object"},Je={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},tn={animation:!0,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Ge},en="show",nn="out",on={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"},sn="fade",rn="show",an=".tooltip-inner",ln=".tooltip-arrow",cn="hover",un="focus",hn="click",fn="manual",dn=function(){function t(t,n){if(void 0===e)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(n),this.tip=null,this._setListeners(),L.setData(t,this.constructor.DATA_KEY,this)}var n=t.prototype;return n.enable=function(){this._isEnabled=!0},n.disable=function(){this._isEnabled=!1},n.toggleEnabled=function(){this._isEnabled=!this._isEnabled},n.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=L.getData(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),L.setData(t.delegateTarget,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(rn))return void this._leave(null,this);this._enter(null,this)}},n.dispose=function(){clearTimeout(this._timeout),L.removeData(this.element,this.constructor.DATA_KEY),Q.off(this.element,this.constructor.EVENT_KEY),Q.off(X.closest(this.element,".modal"),"hide.bs.modal"),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},n.show=function(){var t=this;if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var 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?i.contains(this.element):this.element.ownerDocument.documentElement.contains(this.element);if(n.defaultPrevented||!o)return;var s=this.getTipElement(),r=p(this.constructor.NAME);s.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&s.classList.add(sn);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=this._getContainer();L.setData(s,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||c.appendChild(s),Q.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new e(this.element,s,{placement:l,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:ln},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(e){e.originalPlacement!==e.placement&&t._handlePopperPlacementChange(e)},onUpdate:function(e){return t._handlePopperPlacementChange(e)}}),s.classList.add(rn),"ontouchstart"in document.documentElement&&T(document.body.children).forEach(function(t){Q.on(t,"mouseover",function(){})});var u=function(){t.config.animation&&t._fixTransition();var e=t._hoverState;t._hoverState=null,Q.trigger(t.element,t.constructor.Event.SHOWN),e===nn&&t._leave(null,t)};if(this.tip.classList.contains(sn)){var h=v(this.tip);Q.one(this.tip,g,u),b(this.tip,h)}else u()}},n.hide=function(t){var e=this,n=this.getTipElement(),i=function(){e._hoverState!==en&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),Q.trigger(e.element,e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(!Q.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){if(n.classList.remove(rn),"ontouchstart"in document.documentElement&&T(document.body.children).forEach(function(t){return Q.off(t,"mouseover",A)}),this._activeTrigger[hn]=!1,this._activeTrigger[un]=!1,this._activeTrigger[cn]=!1,this.tip.classList.contains(sn)){var o=v(n);Q.one(n,g,i),b(n,o)}else i();this._hoverState=""}},n.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},n.isWithContent=function(){return Boolean(this.getTitle())},n.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+t)},n.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},n.setContent=function(){var t=this.getTipElement();this.setElementContent(X.findOne(an,t),this.getTitle()),t.classList.remove(sn),t.classList.remove(rn)},n.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&(e.nodeType||e.jquery)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.innerText=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=Xe(e,this.config.whiteList,this.config.sanitizeFn)),t.innerHTML=e):t.innerText=e)},n.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},n._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=s({},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:y(this.config.container)?this.config.container:X.findOne(this.config.container)},n._getAttachment=function(t){return Je[t.toUpperCase()]},n._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(e){if("click"===e)Q.on(t.element,t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(e!==fn){var n=e===cn?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i=e===cn?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)})}}),Q.on(X.closest(this.element,".modal"),"hide.bs.modal",function(){t.element&&t.hide()}),this.config.selector?this.config=s({},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.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),L.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?un:cn]=!0),e.getTipElement().classList.contains(rn)||e._hoverState===en?e._hoverState=en:(clearTimeout(e._timeout),e._hoverState=en,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===en&&e.show()},e.config.delay.show):e.show())},n._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||L.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),L.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?un:cn]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=nn,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===nn&&e.hide()},e.config.delay.hide):e.hide())},n._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},n._getConfig=function(t){var e=vt.getDataAttributes(this.element);return Object.keys(e).forEach(function(t){-1!==Ze.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()),D(qe,t,this.constructor.DefaultType),t.sanitize&&(t.template=Xe(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(ze);null!==e&&e.length&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},n._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},n._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(t.classList.remove(sn),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},t._jQueryInterface=function(e){return this.each(function(){var n=L.getData(this,"bs.tooltip"),i="object"==typeof e&&e;if((n||!/dispose|hide/.test(e))&&(n||(n=new t(this,i)),"string"==typeof e)){if(void 0===n[e])throw new TypeError('No method named "'+e+'"');n[e]()}})},t._getInstance=function(t){return L.getData(t,"bs.tooltip")},i(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return tn}},{key:"NAME",get:function(){return qe}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return on}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return $e}}]),t}();if(void 0!==_){var gn=_.fn.tooltip;_.fn.tooltip=dn._jQueryInterface,_.fn.tooltip.Constructor=dn,_.fn.tooltip.noConflict=function(){return _.fn.tooltip=gn,dn._jQueryInterface}}var _n="popover",pn=new RegExp("(^|\\s)bs-popover\\S+","g"),mn=s({},dn.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),vn=s({},dn.DefaultType,{content:"(string|element|function)"}),En="fade",yn="show",bn=".popover-header",Dn=".popover-body",Tn={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},In=function(t){var e,n;function o(){return t.apply(this,arguments)||this}n=t,(e=o).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n;var s=o.prototype;return s.isWithContent=function(){return this.getTitle()||this._getContent()},s.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},s.setContent=function(){var t=this.getTipElement();this.setElementContent(X.findOne(bn,t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(X.findOne(Dn,t),e),t.classList.remove(En),t.classList.remove(yn)},s._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},s._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(pn);null!==e&&e.length>0&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},o._jQueryInterface=function(t){return this.each(function(){var e=L.getData(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),L.setData(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.getData(t,"bs.popover")},i(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return mn}},{key:"NAME",get:function(){return _n}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return Tn}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return vn}}]),o}(dn);if(void 0!==_){var An=_.fn.popover;_.fn.popover=In._jQueryInterface,_.fn.popover.Constructor=In,_.fn.popover.noConflict=function(){return _.fn.popover=An,In._jQueryInterface}}var Sn="scrollspy",wn="bs.scrollspy",Ln="."+wn,On={offset:10,method:"auto",target:""},Cn={offset:"number",method:"string",target:"(string|element)"},Nn={ACTIVATE:"activate"+Ln,SCROLL:"scroll"+Ln,LOAD_DATA_API:"load"+Ln+".data-api"},kn="dropdown-item",Pn="active",Hn={DATA_SPY:'[data-spy="scroll"]',ACTIVE:".active",NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_ITEMS:".dropdown-item",DROPDOWN_TOGGLE:".dropdown-toggle"},jn="offset",Mn="position",Rn=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+" "+Hn.NAV_LINKS+","+this._config.target+" "+Hn.LIST_ITEMS+","+this._config.target+" "+Hn.DROPDOWN_ITEMS,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,Q.on(this._scrollElement,Nn.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process(),L.setData(t,wn,this)}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?jn:Mn,n="auto"===this._config.method?e:this._config.method,i=n===Mn?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),T(X.find(this._selector)).map(function(t){var e,o=m(t);if(o&&(e=X.findOne(o)),e){var s=e.getBoundingClientRect();if(s.width||s.height)return[vt[n](e).top+i,o]}return null}).filter(function(t){return t}).sort(function(t,e){return t[0]-e[0]}).forEach(function(e){t._offsets.push(e[0]),t._targets.push(e[1])})},e.dispose=function(){L.removeData(this._element,wn),Q.off(this._scrollElement,Ln),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({},On,"object"==typeof t&&t?t:{})).target){var e=t.target.id;e||(e=p(Sn),t.target.id=e),t.target="#"+e}return D(Sn,t,Cn),t},e._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},e._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},e._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},e._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t<this._offsets[0]&&this._offsets[0]>0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&(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(kn)?(X.findOne(Hn.DROPDOWN_TOGGLE,X.closest(n,Hn.DROPDOWN)).classList.add(Pn),n.classList.add(Pn)):(n.classList.add(Pn),X.parents(n,Hn.NAV_LIST_GROUP).forEach(function(t){X.prev(t,Hn.NAV_LINKS+", "+Hn.LIST_ITEMS).forEach(function(t){return t.classList.add(Pn)}),X.prev(t,Hn.NAV_ITEMS).forEach(function(t){X.children(t,Hn.NAV_LINKS).forEach(function(t){return t.classList.add(Pn)})})})),Q.trigger(this._scrollElement,Nn.ACTIVATE,{relatedTarget:t})},e._clear=function(){T(X.find(this._selector)).filter(function(t){return t.classList.contains(Pn)}).forEach(function(t){return t.classList.remove(Pn)})},t._jQueryInterface=function(e){return this.each(function(){var n=L.getData(this,wn);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.getData(t,wn)},i(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return On}}]),t}();if(Q.on(window,Nn.LOAD_DATA_API,function(){T(X.find(Hn.DATA_SPY)).forEach(function(t){return new Rn(t,vt.getDataAttributes(t))})}),void 0!==_){var xn=_.fn[Sn];_.fn[Sn]=Rn._jQueryInterface,_.fn[Sn].Constructor=Rn,_.fn[Sn].noConflict=function(){return _.fn[Sn]=xn,Rn._jQueryInterface}}var Wn="bs.tab",Un="."+Wn,Kn={HIDE:"hide"+Un,HIDDEN:"hidden"+Un,SHOW:"show"+Un,SHOWN:"shown"+Un,CLICK_DATA_API:"click"+Un+".data-api"},Vn="dropdown-menu",Bn="active",Fn="disabled",Qn="fade",Yn="show",Gn=".dropdown",Xn=".nav, .list-group",qn=".active",zn=":scope > li > .active",Zn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',$n=".dropdown-toggle",Jn=":scope > .dropdown-menu .active",ti=function(){function t(t){this._element=t,L.setData(this._element,Wn,this)}var e=t.prototype;return e.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(Bn)||this._element.classList.contains(Fn))){var e,n,i=X.closest(this._element,Xn),o=m(this._element);if(i){var s="UL"===i.nodeName||"OL"===i.nodeName?zn:qn;n=(n=T(X.find(s,i)))[n.length-1]}var r=null;if(n&&(r=Q.trigger(n,Kn.HIDE,{relatedTarget:this._element})),!(Q.trigger(this._element,Kn.SHOW,{relatedTarget:n}).defaultPrevented||null!==r&&r.defaultPrevented)){o&&(e=X.findOne(o)),this._activate(this._element,i);var a=function(){Q.trigger(n,Kn.HIDDEN,{relatedTarget:t._element}),Q.trigger(t._element,Kn.SHOWN,{relatedTarget:n})};e?this._activate(e,e.parentNode,a):a()}}},e.dispose=function(){L.removeData(this._element,Wn),this._element=null},e._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?X.children(e,qn):X.find(zn,e))[0],s=n&&o&&o.classList.contains(Qn),r=function(){return i._transitionComplete(t,o,n)};if(o&&s){var a=v(o);o.classList.remove(Yn),Q.one(o,g,r),b(o,a)}else r()},e._transitionComplete=function(t,e,n){if(e){e.classList.remove(Bn);var i=X.findOne(Jn,e.parentNode);i&&i.classList.remove(Bn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add(Bn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),S(t),t.classList.contains(Qn)&&t.classList.add(Yn),t.parentNode&&t.parentNode.classList.contains(Vn))&&(X.closest(t,Gn)&&T(X.find($n)).forEach(function(t){return t.classList.add(Bn)}),t.setAttribute("aria-expanded",!0));n&&n()},t._jQueryInterface=function(e){return this.each(function(){var n=L.getData(this,Wn)||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.getData(t,Wn)},i(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(Q.on(document,Kn.CLICK_DATA_API,Zn,function(t){t.preventDefault(),(L.getData(this,Wn)||new ti(this)).show()}),void 0!==_){var ei=_.fn.tab;_.fn.tab=ti._jQueryInterface,_.fn.tab.Constructor=ti,_.fn.tab.noConflict=function(){return _.fn.tab=ei,ti._jQueryInterface}}var ni="bs.toast",ii="."+ni,oi={CLICK_DISMISS:"click.dismiss"+ii,HIDE:"hide"+ii,HIDDEN:"hidden"+ii,SHOW:"show"+ii,SHOWN:"shown"+ii},si="fade",ri="hide",ai="show",li="showing",ci={animation:"boolean",autohide:"boolean",delay:"number"},ui={animation:!0,autohide:!0,delay:500},hi='[data-dismiss="toast"]',fi=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),L.setData(t,ni,this)}var e=t.prototype;return e.show=function(){var t=this;Q.trigger(this._element,oi.SHOW),this._config.animation&&this._element.classList.add(si);var e=function(){t._element.classList.remove(li),t._element.classList.add(ai),Q.trigger(t._element,oi.SHOWN),t._config.autohide&&t.hide()};if(this._element.classList.remove(ri),this._element.classList.add(li),this._config.animation){var n=v(this._element);Q.one(this._element,g,e),b(this._element,n)}else e()},e.hide=function(t){var e=this;this._element.classList.contains(ai)&&(Q.trigger(this._element,oi.HIDE),t?this._close():this._timeout=setTimeout(function(){e._close()},this._config.delay))},e.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(ai)&&this._element.classList.remove(ai),Q.off(this._element,oi.CLICK_DISMISS),L.removeData(this._element,ni),this._element=null,this._config=null},e._getConfig=function(t){return t=s({},ui,vt.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),D("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;Q.on(this._element,oi.CLICK_DISMISS,hi,function(){return t.hide(!0)})},e._close=function(){var t=this,e=function(){t._element.classList.add(ri),Q.trigger(t._element,oi.HIDDEN)};if(this._element.classList.remove(ai),this._config.animation){var n=v(this._element);Q.one(this._element,g,e),b(this._element,n)}else e()},t._jQueryInterface=function(e){return this.each(function(){var n=L.getData(this,ni);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.getData(t,ni)},i(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return ci}},{key:"Default",get:function(){return ui}}]),t}();if(void 0!==_){var di=_.fn.toast;_.fn.toast=fi._jQueryInterface,_.fn.toast.Constructor=fi,_.fn.toast.noConflict=function(){return _.fn.toast=di,fi._jQueryInterface}}t.Alert=et,t.Button=gt,t.Carousel=Wt,t.Collapse=te,t.Dropdown=we,t.Modal=Ke,t.Popover=In,t.ScrollSpy=Rn,t.Tab=ti,t.Toast=fi,t.Tooltip=dn,Object.defineProperty(t,"__esModule",{value:!0})});
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("popper.js")):"function"==typeof define&&define.amd?define(["popper.js"],e):(t=t||self).bootstrap=e(t.Popper)}(this,function(t){"use strict";function e(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function n(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}function i(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function o(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},o=Object.keys(n);"function"==typeof Object.getOwnPropertySymbols&&(o=o.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),o.forEach(function(e){i(t,e,n[e])})}return t}t=t&&t.hasOwnProperty("default")?t.default:t;var s,r,a,l,c,u,h,f,d="transitionend",g=window.jQuery,_=function(t){do{t+=~~(1e6*Math.random())}while(document.getElementById(t));return t},p=function(t){var e=t.getAttribute("data-target");if(!e||"#"===e){var n=t.getAttribute("href");e=n&&"#"!==n?n.trim():""}try{return document.querySelector(e)?e:null}catch(t){return null}},m=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},v=function(t){t.dispatchEvent(new Event(d))},E=function(t){return(t[0]||t).nodeType},y=function(t,e){var n=!1,i=e+5;t.addEventListener(d,function e(){n=!0,t.removeEventListener(d,e)}),setTimeout(function(){n||v(t)},i)},b=function(t,e,n){Object.keys(n).forEach(function(i){var o,s=n[i],r=e[i],a=r&&E(r)?"element":(o=r,{}.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+'".')})},D=function(t){return t?[].slice.call(t):[]},T=function(t){return!!t&&(!!(t.style&&t.parentNode&&t.parentNode.style)&&("none"!==t.style.display&&"none"!==t.parentNode.style.display&&"hidden"!==t.style.visibility))},I=function(){return function(){}},A=function(t){return t.offsetHeight},S=(s={},r=1,{set:function(t,e,n){void 0===t.key&&(t.key={key:e,id:r},r++),s[t.key.id]=n},get:function(t,e){if(!t||void 0===t.key)return null;var n=t.key;return n.key===e?s[n.id]:null},delete:function(t,e){if(void 0!==t.key){var n=t.key;n.key===e&&(delete s[n.id],delete t.key)}}}),w={setData:function(t,e,n){S.set(t,e,n)},getData:function(t,e){return S.get(t,e)},removeData:function(t,e){S.delete(t,e)}},L=(a=new CustomEvent("Bootstrap",{cancelable:!0}),(l=document.createElement("div")).addEventListener("Bootstrap",function(){return null}),a.preventDefault(),l.dispatchEvent(a),c=a.defaultPrevented,u=Element.prototype.querySelectorAll,h=Element.prototype.querySelector,f=/:scope\b/,function(){var t=document.createElement("div");try{t.querySelectorAll(":scope *")}catch(t){return!1}return!0}()||(u=function(t){if(!f.test(t))return this.querySelectorAll(t);var e=Boolean(this.id);e||(this.id=_("scope"));var n=null;try{t=t.replace(f,"#"+this.id),n=this.querySelectorAll(t)}finally{e||this.removeAttribute("id")}return n},h=function(t){if(!f.test(t))return this.querySelector(t);var e=u.call(this,t);return void 0!==e[0]?e[0]:null}),{defaultPreventedPreservedOnDispatch:c,find:u,findOne:h}),O=/[^.]*(?=\..*)\.|.*/,C=/\..*/,N=/^key/,k=/::\d+$/,P={},H=1,j={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 R(t,e){return e&&e+"::"+H++||t.uidEvent||H++}function W(t){var e=R(t);return t.uidEvent=e,P[e]=P[e]||{},P[e]}function x(t,e){null===t.which&&N.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;o<i.length;o++){var s=i[o],r=t[s];if(r.originalHandler===e&&r.delegationSelector===n)return t[s]}return null}function K(t,e,n){var i="string"==typeof e,o=i?n:e,s=t.replace(C,""),r=j[s];return r&&(s=r),M.indexOf(s)>-1||(s=t),[i,o,s]}function V(t,e,n,i,o){if("string"==typeof e&&t){n||(n=i,i=null);var s=K(e,n,i),r=s[0],a=s[1],l=s[2],c=W(t),u=c[l]||(c[l]={}),h=U(u,a,r?n:null);if(h)h.oneOff=h.oneOff&&o;else{var f=R(a,e.replace(O,"")),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 x(o,r),i.oneOff&&F.off(t,o.type,n),n.apply(r,[o]);return null}}(t,n,i):function(t,e){return function n(i){return x(i,t),n.oneOff&&F.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 B(t,e,n,i,o){var s=U(e[n],i,o);null!==s&&(t.removeEventListener(n,s,Boolean(o)),delete e[n][s.uidEvent])}var F={on:function(t,e,n,i){V(t,e,n,i,!1)},one:function(t,e,n,i){V(t,e,n,i,!0)},off:function(t,e,n,i){if("string"==typeof e&&t){var o=K(e,n,i),s=o[0],r=o[1],a=o[2],l=a!==e,c=W(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];B(t,e,n,r.originalHandler,r.delegationSelector)}})}(t,c,n,e.substr(1))});var h=c[a]||{};Object.keys(h).forEach(function(n){var i=n.replace(k,"");if(!l||e.indexOf(i)>-1){var o=h[n];B(t,c,a,o.originalHandler,o.delegationSelector)}})}else{if(!c||!c[a])return;B(t,c,a,r,s?n:null)}}},trigger:function(t,e,n){if("string"!=typeof e||!t)return null;var i,o=e.replace(C,""),s=e!==o,r=M.indexOf(o)>-1,a=!0,l=!0,c=!1,u=null;return s&&void 0!==g&&(i=g.Event(e,n),g(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(),L.defaultPreventedPreservedOnDispatch||Object.defineProperty(u,"defaultPrevented",{get:function(){return!0}})),l&&t.dispatchEvent(u),u.defaultPrevented&&void 0!==i&&i.preventDefault(),u}},Q=L.find,Y=L.findOne,G={matches:function(t,e){return t.matches(e)},find:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:Q.call(e,t)},findOne:function(t,e){return void 0===e&&(e=document.documentElement),"string"!=typeof t?null:Y.call(e,t)},children:function(t,e){var n=this;if("string"!=typeof e)return null;var i=D(t.children);return i.filter(function(t){return n.matches(t,e)})},parents:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.parentNode;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.parentNode;return n},closest:function(t,e){return"string"!=typeof e?null:t.closest(e)},prev:function(t,e){if("string"!=typeof e)return null;for(var n=[],i=t.previousSibling;i&&i.nodeType===Node.ELEMENT_NODE&&3!==i.nodeType;)this.matches(i,e)&&n.push(i),i=i.previousSibling;return n}},X="bs.alert",q="."+X,z={CLOSE:"close"+q,CLOSED:"closed"+q,CLICK_DATA_API:"click"+q+".data-api"},Z="alert",$="fade",J="show",tt=function(){function t(t){this._element=t,this._element&&w.setData(t,X,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(){w.removeData(this._element,X),this._element=null},e._getRootElement=function(t){var e=p(t),n=!1;return e&&(n=G.findOne(e)),n||(n=G.closest(t,"."+Z)),n},e._triggerCloseEvent=function(t){return F.trigger(t,z.CLOSE)},e._removeElement=function(t){var e=this;if(t.classList.remove(J),t.classList.contains($)){var n=m(t);F.one(t,d,function(n){return e._destroyElement(t,n)}),y(t,n)}else this._destroyElement(t)},e._destroyElement=function(t){t.parentNode&&t.parentNode.removeChild(t),F.trigger(t,z.CLOSED)},t._jQueryInterface=function(e){return this.each(function(){var n=w.getData(this,X);n||(n=new t(this)),"close"===e&&n[e](this)})},t._handleDismiss=function(t){return function(e){e&&e.preventDefault(),t.close(this)}},t._getInstance=function(t){return w.getData(t,X)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(F.on(document,z.CLICK_DATA_API,'[data-dismiss="alert"]',tt._handleDismiss(new tt)),void 0!==g){var et=g.fn.alert;g.fn.alert=tt._jQueryInterface,g.fn.alert.Constructor=tt,g.fn.alert.noConflict=function(){return g.fn.alert=et,tt._jQueryInterface}}var nt="bs.button",it="."+nt,ot="active",st="btn",rt="focus",at='[data-toggle^="button"]',lt='[data-toggle="buttons"]',ct='input:not([type="hidden"])',ut=".active",ht=".btn",ft={CLICK_DATA_API:"click"+it+".data-api",FOCUS_DATA_API:"focus"+it+".data-api",BLUR_DATA_API:"blur"+it+".data-api"},dt=function(){function t(t){this._element=t,w.setData(t,nt,this)}var e=t.prototype;return e.toggle=function(){var t=!0,e=!0,n=G.closest(this._element,lt);if(n){var i=G.findOne(ct,this._element);if(i){if("radio"===i.type)if(i.checked&&this._element.classList.contains(ot))t=!1;else{var o=G.findOne(ut,n);o&&o.classList.remove(ot)}if(t){if(i.hasAttribute("disabled")||n.hasAttribute("disabled")||i.classList.contains("disabled")||n.classList.contains("disabled"))return;i.checked=!this._element.classList.contains(ot),F.trigger(i,"change")}i.focus(),e=!1}}e&&this._element.setAttribute("aria-pressed",!this._element.classList.contains(ot)),t&&this._element.classList.toggle(ot)},e.dispose=function(){w.removeData(this._element,nt),this._element=null},t._jQueryInterface=function(e){return this.each(function(){var n=w.getData(this,nt);n||(n=new t(this)),"toggle"===e&&n[e]()})},t._getInstance=function(t){return w.getData(t,nt)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(F.on(document,ft.CLICK_DATA_API,at,function(t){t.preventDefault();var e=t.target;e.classList.contains(st)||(e=G.closest(e,ht));var n=w.getData(e,nt);n||(n=new dt(e),w.setData(e,nt,n)),n.toggle()}),F.on(document,ft.FOCUS_DATA_API,at,function(t){G.closest(t.target,ht).classList.add(rt)}),F.on(document,ft.BLUR_DATA_API,at,function(t){G.closest(t.target,ht).classList.remove(rt)}),void 0!==g){var gt=g.fn.button;g.fn.button=dt._jQueryInterface,g.fn.button.Constructor=dt,g.fn.button.noConflict=function(){return g.fn.button=gt,dt._jQueryInterface}}function _t(t){return"true"===t||"false"!==t&&(t===Number(t).toString()?Number(t):""===t||"null"===t?null:t)}function pt(t){return t.replace(/[A-Z]/g,function(t){return t.toLowerCase()})}var mt={setDataAttribute:function(t,e,n){t.setAttribute("data-"+pt(e),n)},removeDataAttribute:function(t,e){t.removeAttribute("data-"+pt(e))},getDataAttributes:function(t){if(!t)return{};var e=o({},t.dataset);return Object.keys(e).forEach(function(t){e[t]=_t(e[t])}),e},getDataAttribute:function(t,e){return _t(t.getAttribute("data-"+pt(e)))},offset:function(t){var e=t.getBoundingClientRect();return{top:e.top+document.body.scrollTop,left:e.left+document.body.scrollLeft}},position:function(t){return{top:t.offsetTop,left:t.offsetLeft}},toggleClass:function(t,e){t&&(t.classList.contains(e)?t.classList.remove(e):t.classList.add(e))}},vt="carousel",Et="bs.carousel",yt="."+Et,bt={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},Dt={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},Tt="next",It="prev",At="left",St="right",wt={SLIDE:"slide"+yt,SLID:"slid"+yt,KEYDOWN:"keydown"+yt,MOUSEENTER:"mouseenter"+yt,MOUSELEAVE:"mouseleave"+yt,TOUCHSTART:"touchstart"+yt,TOUCHMOVE:"touchmove"+yt,TOUCHEND:"touchend"+yt,POINTERDOWN:"pointerdown"+yt,POINTERUP:"pointerup"+yt,DRAG_START:"dragstart"+yt,LOAD_DATA_API:"load"+yt+".data-api",CLICK_DATA_API:"click"+yt+".data-api"},Lt="carousel",Ot="active",Ct="slide",Nt="carousel-item-right",kt="carousel-item-left",Pt="carousel-item-next",Ht="carousel-item-prev",jt="pointer-event",Mt={ACTIVE:".active",ACTIVE_ITEM:".active.carousel-item",ITEM:".carousel-item",ITEM_IMG:".carousel-item img",NEXT_PREV:".carousel-item-next, .carousel-item-prev",INDICATORS:".carousel-indicators",DATA_SLIDE:"[data-slide], [data-slide-to]",DATA_RIDE:'[data-ride="carousel"]'},Rt={TOUCH:"touch",PEN:"pen"},Wt=function(){function t(t,e){this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(e),this._element=t,this._indicatorsElement=G.findOne(Mt.INDICATORS,this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent||window.MSPointerEvent),this._addEventListeners(),w.setData(t,Et,this)}var e=t.prototype;return e.next=function(){this._isSliding||this._slide(Tt)},e.nextWhenVisible=function(){!document.hidden&&T(this._element)&&this.next()},e.prev=function(){this._isSliding||this._slide(It)},e.pause=function(t){t||(this._isPaused=!0),G.findOne(Mt.NEXT_PREV,this._element)&&(v(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=G.findOne(Mt.ACTIVE_ITEM,this._element);var n=this._getItemIndex(this._activeElement);if(!(t>this._items.length-1||t<0))if(this._isSliding)F.one(this._element,wt.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=t>n?Tt:It;this._slide(i,this._items[t])}},e.dispose=function(){F.off(this._element,yt),w.removeData(this._element,Et),this._items=null,this._config=null,this._element=null,this._interval=null,this._isPaused=null,this._isSliding=null,this._activeElement=null,this._indicatorsElement=null},e._getConfig=function(t){return t=o({},bt,t),b(vt,t,Dt),t},e._handleSwipe=function(){var t=Math.abs(this.touchDeltaX);if(!(t<=40)){var e=t/this.touchDeltaX;e>0&&this.prev(),e<0&&this.next()}},e._addEventListeners=function(){var t=this;this._config.keyboard&&F.on(this._element,wt.KEYDOWN,function(e){return t._keydown(e)}),"hover"===this._config.pause&&(F.on(this._element,wt.MOUSEENTER,function(e){return t.pause(e)}),F.on(this._element,wt.MOUSELEAVE,function(e){return t.cycle(e)})),this._config.touch&&this._addTouchEventListeners()},e._addTouchEventListeners=function(){var t=this;if(this._touchSupported){var e=function(e){t._pointerEvent&&Rt[e.pointerType.toUpperCase()]?t.touchStartX=e.clientX:t._pointerEvent||(t.touchStartX=e.touches[0].clientX)},n=function(e){t._pointerEvent&&Rt[e.pointerType.toUpperCase()]&&(t.touchDeltaX=e.clientX-t.touchStartX),t._handleSwipe(),"hover"===t._config.pause&&(t.pause(),t.touchTimeout&&clearTimeout(t.touchTimeout),t.touchTimeout=setTimeout(function(e){return t.cycle(e)},500+t._config.interval))};D(G.find(Mt.ITEM_IMG,this._element)).forEach(function(t){F.on(t,wt.DRAG_START,function(t){return t.preventDefault()})}),this._pointerEvent?(F.on(this._element,wt.POINTERDOWN,function(t){return e(t)}),F.on(this._element,wt.POINTERUP,function(t){return n(t)}),this._element.classList.add(jt)):(F.on(this._element,wt.TOUCHSTART,function(t){return e(t)}),F.on(this._element,wt.TOUCHMOVE,function(e){return function(e){e.touches&&e.touches.length>1?t.touchDeltaX=0:t.touchDeltaX=e.touches[0].clientX-t.touchStartX}(e)}),F.on(this._element,wt.TOUCHEND,function(t){return n(t)}))}},e._keydown=function(t){if(!/input|textarea/i.test(t.target.tagName))switch(t.which){case 37:t.preventDefault(),this.prev();break;case 39:t.preventDefault(),this.next()}},e._getItemIndex=function(t){return this._items=t&&t.parentNode?D(G.find(Mt.ITEM,t.parentNode)):[],this._items.indexOf(t)},e._getItemByDirection=function(t,e){var n=t===Tt,i=t===It,o=this._getItemIndex(e),s=this._items.length-1;if((i&&0===o||n&&o===s)&&!this._config.wrap)return e;var r=(o+(t===It?-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(G.findOne(Mt.ACTIVE_ITEM,this._element));return F.trigger(this._element,wt.SLIDE,{relatedTarget:t,direction:e,from:i,to:n})},e._setActiveIndicatorElement=function(t){if(this._indicatorsElement){for(var e=G.find(Mt.ACTIVE,this._indicatorsElement),n=0;n<e.length;n++)e[n].classList.remove(Ot);var i=this._indicatorsElement.children[this._getItemIndex(t)];i&&i.classList.add(Ot)}},e._slide=function(t,e){var n,i,o,s=this,r=G.findOne(Mt.ACTIVE_ITEM,this._element),a=this._getItemIndex(r),l=e||r&&this._getItemByDirection(t,r),c=this._getItemIndex(l),u=Boolean(this._interval);if(t===Tt?(n=kt,i=Pt,o=At):(n=Nt,i=Ht,o=St),l&&l.classList.contains(Ot))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(Ct)){l.classList.add(i),A(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=m(r);F.one(r,d,function(){l.classList.remove(n),l.classList.remove(i),l.classList.add(Ot),r.classList.remove(Ot),r.classList.remove(i),r.classList.remove(n),s._isSliding=!1,setTimeout(function(){F.trigger(s._element,wt.SLID,{relatedTarget:l,direction:o,from:a,to:c})},0)}),y(r,f)}else r.classList.remove(Ot),l.classList.add(Ot),this._isSliding=!1,F.trigger(this._element,wt.SLID,{relatedTarget:l,direction:o,from:a,to:c});u&&this.cycle()}},t._carouselInterface=function(e,n){var i=w.getData(e,Et),s=o({},bt,mt.getDataAttributes(e));"object"==typeof n&&(s=o({},s,n));var r="string"==typeof n?n:s.slide;if(i||(i=new t(e,s)),"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 s.interval&&s.ride&&(i.pause(),i.cycle())},t._jQueryInterface=function(e){return this.each(function(){t._carouselInterface(this,e)})},t._dataApiClickHandler=function(e){var n=p(this);if(n){var i=G.findOne(n);if(i&&i.classList.contains(Lt)){var s=o({},mt.getDataAttributes(i),mt.getDataAttributes(this)),r=this.getAttribute("data-slide-to");r&&(s.interval=!1),t._carouselInterface(i,s),r&&w.getData(i,Et).to(r),e.preventDefault()}}},t._getInstance=function(t){return w.getData(t,Et)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return bt}}]),t}();if(F.on(document,wt.CLICK_DATA_API,Mt.DATA_SLIDE,Wt._dataApiClickHandler),F.on(window,wt.LOAD_DATA_API,function(){for(var t=D(G.find(Mt.DATA_RIDE)),e=0,n=t.length;e<n;e++)Wt._carouselInterface(t[e],w.getData(t[e],Et))}),void 0!==g){var xt=g.fn[vt];g.fn[vt]=Wt._jQueryInterface,g.fn[vt].Constructor=Wt,g.fn[vt].noConflict=function(){return g.fn[vt]=xt,Wt._jQueryInterface}}var Ut="collapse",Kt="bs.collapse",Vt="."+Kt,Bt={toggle:!0,parent:""},Ft={toggle:"boolean",parent:"(string|element)"},Qt={SHOW:"show"+Vt,SHOWN:"shown"+Vt,HIDE:"hide"+Vt,HIDDEN:"hidden"+Vt,CLICK_DATA_API:"click"+Vt+".data-api"},Yt="show",Gt="collapse",Xt="collapsing",qt="collapsed",zt="width",Zt="height",$t={ACTIVES:".show, .collapsing",DATA_TOGGLE:'[data-toggle="collapse"]'},Jt=function(){function t(t,e){this._isTransitioning=!1,this._element=t,this._config=this._getConfig(e),this._triggerArray=D(G.find('[data-toggle="collapse"][href="#'+t.id+'"],[data-toggle="collapse"][data-target="#'+t.id+'"]'));for(var n=D(G.find($t.DATA_TOGGLE)),i=0,o=n.length;i<o;i++){var s=n[i],r=p(s),a=D(G.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(),w.setData(t,Kt,this)}var e=t.prototype;return e.toggle=function(){this._element.classList.contains(Yt)?this.hide():this.show()},e.show=function(){var e=this;if(!this._isTransitioning&&!this._element.classList.contains(Yt)){var n,i;this._parent&&0===(n=D(G.find($t.ACTIVES,this._parent)).filter(function(t){return"string"==typeof e._config.parent?t.getAttribute("data-parent")===e._config.parent:t.classList.contains(Gt)})).length&&(n=null);var o=G.findOne(this._selector);if(n){var s=n.filter(function(t){return o!==t});if((i=s[0]?w.getData(s[0],Kt):null)&&i._isTransitioning)return}if(!F.trigger(this._element,Qt.SHOW).defaultPrevented){n&&n.forEach(function(e){o!==e&&t._collapseInterface(e,"hide"),i||w.setData(e,Kt,null)});var r=this._getDimension();this._element.classList.remove(Gt),this._element.classList.add(Xt),this._element.style[r]=0,this._triggerArray.length&&this._triggerArray.forEach(function(t){t.classList.remove(qt),t.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);var a="scroll"+(r[0].toUpperCase()+r.slice(1)),l=m(this._element);F.one(this._element,d,function(){e._element.classList.remove(Xt),e._element.classList.add(Gt),e._element.classList.add(Yt),e._element.style[r]="",e.setTransitioning(!1),F.trigger(e._element,Qt.SHOWN)}),y(this._element,l),this._element.style[r]=this._element[a]+"px"}}},e.hide=function(){var t=this;if(!this._isTransitioning&&this._element.classList.contains(Yt)&&!F.trigger(this._element,Qt.HIDE).defaultPrevented){var e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",A(this._element),this._element.classList.add(Xt),this._element.classList.remove(Gt),this._element.classList.remove(Yt);var n=this._triggerArray.length;if(n>0)for(var i=0;i<n;i++){var o=this._triggerArray[i],s=p(o);if(null!==s)G.findOne(s).classList.contains(Yt)||(o.classList.add(qt),o.setAttribute("aria-expanded",!1))}this.setTransitioning(!0);this._element.style[e]="";var r=m(this._element);F.one(this._element,d,function(){t.setTransitioning(!1),t._element.classList.remove(Xt),t._element.classList.add(Gt),F.trigger(t._element,Qt.HIDDEN)}),y(this._element,r)}},e.setTransitioning=function(t){this._isTransitioning=t},e.dispose=function(){w.removeData(this._element,Kt),this._config=null,this._parent=null,this._element=null,this._triggerArray=null,this._isTransitioning=null},e._getConfig=function(t){return(t=o({},Bt,t)).toggle=Boolean(t.toggle),b(Ut,t,Ft),t},e._getDimension=function(){return this._element.classList.contains(zt)?zt:Zt},e._getParent=function(){var e=this,n=this._config.parent;E(n)?void 0===n.jquery&&void 0===n[0]||(n=n[0]):n=G.findOne(n);var i='[data-toggle="collapse"][data-parent="'+n+'"]';return D(G.find(i,n)).forEach(function(n){e._addAriaAndCollapsedClass(t._getTargetFromElement(n),[n])}),n},e._addAriaAndCollapsedClass=function(t,e){if(t){var n=t.classList.contains(Yt);e.length&&e.forEach(function(t){n?t.classList.remove(qt):t.classList.add(qt),t.setAttribute("aria-expanded",n)})}},t._getTargetFromElement=function(t){var e=p(t);return e?G.findOne(e):null},t._collapseInterface=function(e,n){var i=w.getData(e,Kt),s=o({},Bt,mt.getDataAttributes(e),"object"==typeof n&&n?n:{});if(!i&&s.toggle&&/show|hide/.test(n)&&(s.toggle=!1),i||(i=new t(e,s)),"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 w.getData(t,Kt)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Bt}}]),t}();if(F.on(document,Qt.CLICK_DATA_API,$t.DATA_TOGGLE,function(t){"A"===t.target.tagName&&t.preventDefault();var e=mt.getDataAttributes(this),n=p(this);D(G.find(n)).forEach(function(t){var n,i=w.getData(t,Kt);i?(null===i._parent&&"string"==typeof e.parent&&(i._config.parent=e.parent,i._parent=i._getParent()),n="toggle"):n=e,Jt._collapseInterface(t,n)})}),void 0!==g){var te=g.fn[Ut];g.fn[Ut]=Jt._jQueryInterface,g.fn[Ut].Constructor=Jt,g.fn[Ut].noConflict=function(){return g.fn[Ut]=te,Jt._jQueryInterface}}var ee="dropdown",ne="bs.dropdown",ie="."+ne,oe=new RegExp("38|40|27"),se={HIDE:"hide"+ie,HIDDEN:"hidden"+ie,SHOW:"show"+ie,SHOWN:"shown"+ie,CLICK:"click"+ie,CLICK_DATA_API:"click"+ie+".data-api",KEYDOWN_DATA_API:"keydown"+ie+".data-api",KEYUP_DATA_API:"keyup"+ie+".data-api"},re="disabled",ae="show",le="dropup",ce="dropright",ue="dropleft",he="dropdown-menu-right",fe="position-static",de='[data-toggle="dropdown"]',ge=".dropdown form",_e=".dropdown-menu",pe=".navbar-nav",me=".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",ve="top-start",Ee="top-end",ye="bottom-start",be="bottom-end",De="right-start",Te="left-start",Ie={offset:0,flip:!0,boundary:"scrollParent",reference:"toggle",display:"dynamic"},Ae={offset:"(number|string|function)",flip:"boolean",boundary:"(string|element)",reference:"(string|element)",display:"string"},Se=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(),w.setData(t,ne,this)}var i=e.prototype;return i.toggle=function(){if(!this._element.disabled&&!this._element.classList.contains(re)){var n=e._getParentFromElement(this._element),i=this._menu.classList.contains(ae);if(e._clearMenus(),!i){var o={relatedTarget:this._element};if(!F.trigger(n,se.SHOW,o).defaultPrevented){if(!this._inNavbar){if(void 0===t)throw new TypeError("Bootstrap's dropdowns require Popper.js (https://popper.js.org)");var s=this._element;"parent"===this._config.reference?s=n:E(this._config.reference)&&(s=this._config.reference,void 0!==this._config.reference.jquery&&(s=this._config.reference[0])),"scrollParent"!==this._config.boundary&&n.classList.add(fe),this._popper=new t(s,this._menu,this._getPopperConfig())}"ontouchstart"in document.documentElement&&!D(G.closest(n,pe)).length&&D(document.body.children).forEach(function(t){return F.on(t,"mouseover",null,function(){})}),this._element.focus(),this._element.setAttribute("aria-expanded",!0),mt.toggleClass(this._menu,ae),mt.toggleClass(n,ae),F.trigger(n,se.SHOWN,o)}}}},i.show=function(){if(!(this._element.disabled||this._element.classList.contains(re)||this._menu.classList.contains(ae))){var t=e._getParentFromElement(this._element),n={relatedTarget:this._element};F.trigger(t,se.SHOW,n).defaultPrevented||(mt.toggleClass(this._menu,ae),mt.toggleClass(t,ae),F.trigger(t,se.SHOWN,n))}},i.hide=function(){if(!this._element.disabled&&!this._element.classList.contains(re)&&this._menu.classList.contains(ae)){var t=e._getParentFromElement(this._element),n={relatedTarget:this._element};F.trigger(t,se.HIDE,n).defaultPrevented||(mt.toggleClass(this._menu,ae),mt.toggleClass(t,ae),F.trigger(t,se.HIDDEN,n))}},i.dispose=function(){w.removeData(this._element,ne),F.off(this._element,ie),this._element=null,this._menu=null,null!==this._popper&&(this._popper.destroy(),this._popper=null)},i.update=function(){this._inNavbar=this._detectNavbar(),null!==this._popper&&this._popper.scheduleUpdate()},i._addEventListeners=function(){var t=this;F.on(this._element,se.CLICK,function(e){e.preventDefault(),e.stopPropagation(),t.toggle()})},i._getConfig=function(t){return t=o({},this.constructor.Default,mt.getDataAttributes(this._element),t),b(ee,t,this.constructor.DefaultType),t},i._getMenuElement=function(){if(!this._menu){var t=e._getParentFromElement(this._element);t&&(this._menu=G.findOne(_e,t))}return this._menu},i._getPlacement=function(){var t=this._element.parentNode,e=ye;return t.classList.contains(le)?(e=ve,this._menu.classList.contains(he)&&(e=Ee)):t.classList.contains(ce)?e=De:t.classList.contains(ue)?e=Te:this._menu.classList.contains(he)&&(e=be),e},i._detectNavbar=function(){return Boolean(G.closest(this._element,".navbar"))},i._getOffset=function(){var t=this,e={};return"function"==typeof this._config.offset?e.fn=function(e){return e.offsets=o({},e.offsets,t._config.offset(e.offsets,t._element)||{}),e}:e.offset=this._config.offset,e},i._getPopperConfig=function(){var t={placement:this._getPlacement(),modifiers:{offset:this._getOffset(),flip:{enabled:this._config.flip},preventOverflow:{boundariesElement:this._config.boundary}}};return"static"===this._config.display&&(t.modifiers.applyStyle={enabled:!1}),t},e._dropdownInterface=function(t,n){var i=w.getData(t,ne);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=D(G.find(de)),i=0,o=n.length;i<o;i++){var s=e._getParentFromElement(n[i]),r=w.getData(n[i],ne),a={relatedTarget:n[i]};if(t&&"click"===t.type&&(a.clickEvent=t),r){var l=r._menu;if(s.classList.contains(ae))if(!(t&&("click"===t.type&&/input|textarea/i.test(t.target.tagName)||"keyup"===t.type&&9===t.which)&&s.contains(t.target)))F.trigger(s,se.HIDE,a).defaultPrevented||("ontouchstart"in document.documentElement&&D(document.body.children).forEach(function(t){return F.off(t,"mouseover",null,function(){})}),n[i].setAttribute("aria-expanded","false"),l.classList.remove(ae),s.classList.remove(ae),F.trigger(s,se.HIDDEN,a))}}},e._getParentFromElement=function(t){var e,n=p(t);return n&&(e=G.findOne(n)),e||t.parentNode},e._dataApiKeydownHandler=function(t){if((/input|textarea/i.test(t.target.tagName)?!(32===t.which||27!==t.which&&(40!==t.which&&38!==t.which||G.closest(t.target,_e))):oe.test(t.which))&&(t.preventDefault(),t.stopPropagation(),!this.disabled&&!this.classList.contains(re))){var n=e._getParentFromElement(this),i=n.classList.contains(ae);if(!i||i&&(27===t.which||32===t.which))return 27===t.which&&F.trigger(G.findOne(de,n),"focus"),void e._clearMenus();var o=D(G.find(me,n));if(o.length){var s=o.indexOf(t.target);38===t.which&&s>0&&s--,40===t.which&&s<o.length-1&&s++,s<0&&(s=0),o[s].focus()}}},e._getInstance=function(t){return w.getData(t,ne)},n(e,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ie}},{key:"DefaultType",get:function(){return Ae}}]),e}();if(F.on(document,se.KEYDOWN_DATA_API,de,Se._dataApiKeydownHandler),F.on(document,se.KEYDOWN_DATA_API,_e,Se._dataApiKeydownHandler),F.on(document,se.CLICK_DATA_API,Se._clearMenus),F.on(document,se.KEYUP_DATA_API,Se._clearMenus),F.on(document,se.CLICK_DATA_API,de,function(t){t.preventDefault(),t.stopPropagation(),Se._dropdownInterface(this,"toggle")}),F.on(document,se.CLICK_DATA_API,ge,function(t){return t.stopPropagation()}),void 0!==g){var we=g.fn[ee];g.fn[ee]=Se._jQueryInterface,g.fn[ee].Constructor=Se,g.fn[ee].noConflict=function(){return g.fn[ee]=we,Se._jQueryInterface}}var Le="bs.modal",Oe="."+Le,Ce={backdrop:!0,keyboard:!0,focus:!0,show:!0},Ne={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean",show:"boolean"},ke={HIDE:"hide"+Oe,HIDDEN:"hidden"+Oe,SHOW:"show"+Oe,SHOWN:"shown"+Oe,FOCUSIN:"focusin"+Oe,RESIZE:"resize"+Oe,CLICK_DISMISS:"click.dismiss"+Oe,KEYDOWN_DISMISS:"keydown.dismiss"+Oe,MOUSEUP_DISMISS:"mouseup.dismiss"+Oe,MOUSEDOWN_DISMISS:"mousedown.dismiss"+Oe,CLICK_DATA_API:"click"+Oe+".data-api"},Pe="modal-dialog-scrollable",He="modal-scrollbar-measure",je="modal-backdrop",Me="modal-open",Re="fade",We="show",xe={DIALOG:".modal-dialog",MODAL_BODY:".modal-body",DATA_TOGGLE:'[data-toggle="modal"]',DATA_DISMISS:'[data-dismiss="modal"]',FIXED_CONTENT:".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",STICKY_CONTENT:".sticky-top"},Ue=function(){function t(t,e){this._config=this._getConfig(e),this._element=t,this._dialog=G.findOne(xe.DIALOG,t),this._backdrop=null,this._isShown=!1,this._isBodyOverflowing=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollbarWidth=0,w.setData(t,Le,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(Re)&&(this._isTransitioning=!0);var n=F.trigger(this._element,ke.SHOW,{relatedTarget:t});this._isShown||n.defaultPrevented||(this._isShown=!0,this._checkScrollbar(),this._setScrollbar(),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),F.on(this._element,ke.CLICK_DISMISS,xe.DATA_DISMISS,function(t){return e.hide(t)}),F.on(this._dialog,ke.MOUSEDOWN_DISMISS,function(){F.one(e._element,ke.MOUSEUP_DISMISS,function(t){t.target===e._element&&(e._ignoreBackdropClick=!0)})}),this._showBackdrop(function(){return e._showElement(t)}))}},e.hide=function(t){var e=this;if(t&&t.preventDefault(),this._isShown&&!this._isTransitioning){var n=F.trigger(this._element,ke.HIDE);if(this._isShown&&!n.defaultPrevented){this._isShown=!1;var i=this._element.classList.contains(Re);if(i&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),F.off(document,ke.FOCUSIN),this._element.classList.remove(We),F.off(this._element,ke.CLICK_DISMISS),F.off(this._dialog,ke.MOUSEDOWN_DISMISS),i){var o=m(this._element);F.one(this._element,d,function(t){return e._hideModal(t)}),y(this._element,o)}else this._hideModal()}}},e.dispose=function(){[window,this._element,this._dialog].forEach(function(t){return F.off(t,Oe)}),F.off(document,ke.FOCUSIN),w.removeData(this._element,Le),this._config=null,this._element=null,this._dialog=null,this._backdrop=null,this._isShown=null,this._isBodyOverflowing=null,this._ignoreBackdropClick=null,this._isTransitioning=null,this._scrollbarWidth=null},e.handleUpdate=function(){this._adjustDialog()},e._getConfig=function(t){return t=o({},Ce,t),b("modal",t,Ne),t},e._showElement=function(t){var e=this,n=this._element.classList.contains(Re);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(Pe)?G.findOne(xe.MODAL_BODY,this._dialog).scrollTop=0:this._element.scrollTop=0,n&&A(this._element),this._element.classList.add(We),this._config.focus&&this._enforceFocus();var i=function(){e._config.focus&&e._element.focus(),e._isTransitioning=!1,F.trigger(e._element,ke.SHOWN,{relatedTarget:t})};if(n){var o=m(this._dialog);F.one(this._dialog,d,i),y(this._dialog,o)}else i()},e._enforceFocus=function(){var t=this;F.off(document,ke.FOCUSIN),F.on(document,ke.FOCUSIN,function(e){document===e.target||t._element===e.target||t._element.contains(e.target)||t._element.focus()})},e._setEscapeEvent=function(){var t=this;this._isShown&&this._config.keyboard?F.on(this._element,ke.KEYDOWN_DISMISS,function(e){27===e.which&&(e.preventDefault(),t.hide())}):this._isShown||F.off(this._element,ke.KEYDOWN_DISMISS)},e._setResizeEvent=function(){var t=this;this._isShown?F.on(window,ke.RESIZE,function(e){return t.handleUpdate(e)}):F.off(window,ke.RESIZE)},e._hideModal=function(){var t=this;this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._isTransitioning=!1,this._showBackdrop(function(){document.body.classList.remove(Me),t._resetAdjustments(),t._resetScrollbar(),F.trigger(t._element,ke.HIDDEN)})},e._removeBackdrop=function(){this._backdrop&&(this._backdrop.parentNode.removeChild(this._backdrop),this._backdrop=null)},e._showBackdrop=function(t){var e=this,n=this._element.classList.contains(Re)?Re:"";if(this._isShown&&this._config.backdrop){if(this._backdrop=document.createElement("div"),this._backdrop.className=je,n&&this._backdrop.classList.add(n),document.body.appendChild(this._backdrop),F.on(this._element,ke.CLICK_DISMISS,function(t){e._ignoreBackdropClick?e._ignoreBackdropClick=!1:t.target===t.currentTarget&&("static"===e._config.backdrop?e._element.focus():e.hide())}),n&&A(this._backdrop),this._backdrop.classList.add(We),!t)return;if(!n)return void t();var i=m(this._backdrop);F.one(this._backdrop,d,t),y(this._backdrop,i)}else if(!this._isShown&&this._backdrop){this._backdrop.classList.remove(We);var o=function(){e._removeBackdrop(),t&&t()};if(this._element.classList.contains(Re)){var s=m(this._backdrop);F.one(this._backdrop,d,o),y(this._backdrop,s)}else o()}else t&&t()},e._adjustDialog=function(){var t=this._element.scrollHeight>document.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},e._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},e._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right<window.innerWidth,this._scrollbarWidth=this._getScrollbarWidth()},e._setScrollbar=function(){var t=this;if(this._isBodyOverflowing){D(G.find(xe.FIXED_CONTENT)).forEach(function(e){var n=e.style.paddingRight,i=window.getComputedStyle(e)["padding-right"];mt.setDataAttribute(e,"padding-right",n),e.style.paddingRight=parseFloat(i)+t._scrollbarWidth+"px"}),D(G.find(xe.STICKY_CONTENT)).forEach(function(e){var n=e.style.marginRight,i=window.getComputedStyle(e)["margin-right"];mt.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"];mt.setDataAttribute(document.body,"padding-right",e),document.body.style.paddingRight=parseFloat(n)+this._scrollbarWidth+"px"}document.body.classList.add(Me)},e._resetScrollbar=function(){D(G.find(xe.FIXED_CONTENT)).forEach(function(t){var e=mt.getDataAttribute(t,"padding-right");void 0!==e&&(mt.removeDataAttribute(t,"padding-right"),t.style.paddingRight=e)}),D(G.find(""+xe.STICKY_CONTENT)).forEach(function(t){var e=mt.getDataAttribute(t,"margin-right");void 0!==e&&(mt.removeDataAttribute(t,"margin-right"),t.style.marginRight=e)});var t=mt.getDataAttribute(document.body,"padding-right");void 0===t?document.body.style.paddingRight="":(mt.removeDataAttribute(document.body,"padding-right"),document.body.style.paddingRight=t)},e._getScrollbarWidth=function(){var t=document.createElement("div");t.className=He,document.body.appendChild(t);var e=t.getBoundingClientRect().width-t.clientWidth;return document.body.removeChild(t),e},t._jQueryInterface=function(e,n){return this.each(function(){var i=w.getData(this,Le),s=o({},Ce,mt.getDataAttributes(this),"object"==typeof e&&e?e:{});if(i||(i=new t(this,s)),"string"==typeof e){if(void 0===i[e])throw new TypeError('No method named "'+e+'"');i[e](n)}else s.show&&i.show(n)})},t._getInstance=function(t){return w.getData(t,Le)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ce}}]),t}();if(F.on(document,ke.CLICK_DATA_API,xe.DATA_TOGGLE,function(t){var e,n=this,i=p(this);i&&(e=G.findOne(i));var s=w.getData(e,Le)?"toggle":o({},mt.getDataAttributes(e),mt.getDataAttributes(this));"A"!==this.tagName&&"AREA"!==this.tagName||t.preventDefault(),F.one(e,ke.SHOW,function(t){t.defaultPrevented||F.one(e,ke.HIDDEN,function(){T(n)&&n.focus()})});var r=w.getData(e,Le);r||(r=new Ue(e,s)),r.show(this)}),void 0!==g){var Ke=g.fn.modal;g.fn.modal=Ue._jQueryInterface,g.fn.modal.Constructor=Ue,g.fn.modal.noConflict=function(){return g.fn.modal=Ke,Ue._jQueryInterface}}var Ve=["background","cite","href","itemtype","longdesc","poster","src","xlink:href"],Be=/^(?:(?:https?|mailto|ftp|tel|file):|[^&:\/?#]*(?:[\/?#]|$))/gi,Fe=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+\/]+=*$/i,Qe=function(t,e){var n=t.nodeName.toLowerCase();if(-1!==e.indexOf(n))return-1===Ve.indexOf(n)||Boolean(t.nodeValue.match(Be)||t.nodeValue.match(Fe));for(var i=e.filter(function(t){return t instanceof RegExp}),o=0,s=i.length;o<s;o++)if(n.match(i[o]))return!0;return!1},Ye={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]};function Ge(t,e,n){if(!t.length)return t;if(n&&"function"==typeof n)return n(t);for(var i=(new window.DOMParser).parseFromString(t,"text/html"),o=Object.keys(e),s=D(i.body.querySelectorAll("*")),r=function(t,n){var i=s[t],r=i.nodeName.toLowerCase();if(-1===o.indexOf(r))return i.parentNode.removeChild(i),"continue";var a=D(i.attributes),l=[].concat(e["*"]||[],e[r]||[]);a.forEach(function(t){Qe(t,l)||i.removeAttribute(t.nodeName)})},a=0,l=s.length;a<l;a++)r(a);return i.body.innerHTML}var Xe="tooltip",qe=new RegExp("(^|\\s)bs-tooltip\\S+","g"),ze=["sanitize","whiteList","sanitizeFn"],Ze={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"},$e={AUTO:"auto",TOP:"top",RIGHT:"right",BOTTOM:"bottom",LEFT:"left"},Je={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:Ye},tn="show",en="out",nn={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"},on="fade",sn="show",rn=".tooltip-inner",an=".tooltip-arrow",ln="hover",cn="focus",un="click",hn="manual",fn=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(),w.setData(e,this.constructor.DATA_KEY,this)}var i=e.prototype;return i.enable=function(){this._isEnabled=!0},i.disable=function(){this._isEnabled=!1},i.toggleEnabled=function(){this._isEnabled=!this._isEnabled},i.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=w.getData(t.delegateTarget,e);n||(n=new this.constructor(t.delegateTarget,this._getDelegateConfig()),w.setData(t.delegateTarget,e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(this.getTipElement().classList.contains(sn))return void this._leave(null,this);this._enter(null,this)}},i.dispose=function(){clearTimeout(this._timeout),w.removeData(this.element,this.constructor.DATA_KEY),F.off(this.element,this.constructor.EVENT_KEY),F.off(G.closest(this.element,".modal"),"hide.bs.modal"),this.tip&&this.tip.parentNode.removeChild(this.tip),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,null!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},i.show=function(){var e=this;if("none"===this.element.style.display)throw new Error("Please use show on visible elements");if(this.isWithContent()&&this._isEnabled){var n=F.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=_(this.constructor.NAME);s.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&s.classList.add(on);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=this._getContainer();w.setData(s,this.constructor.DATA_KEY,this),this.element.ownerDocument.documentElement.contains(this.tip)||c.appendChild(s),F.trigger(this.element,this.constructor.Event.INSERTED),this._popper=new t(this.element,s,{placement:l,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:an},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),s.classList.add(sn),"ontouchstart"in document.documentElement&&D(document.body.children).forEach(function(t){F.on(t,"mouseover",function(){})});var u=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,F.trigger(e.element,e.constructor.Event.SHOWN),t===en&&e._leave(null,e)};if(this.tip.classList.contains(on)){var h=m(this.tip);F.one(this.tip,d,u),y(this.tip,h)}else u()}},i.hide=function(t){var e=this,n=this.getTipElement(),i=function(){e._hoverState!==tn&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),F.trigger(e.element,e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(!F.trigger(this.element,this.constructor.Event.HIDE).defaultPrevented){if(n.classList.remove(sn),"ontouchstart"in document.documentElement&&D(document.body.children).forEach(function(t){return F.off(t,"mouseover",I)}),this._activeTrigger[un]=!1,this._activeTrigger[cn]=!1,this._activeTrigger[ln]=!1,this.tip.classList.contains(on)){var o=m(n);F.one(n,d,i),y(n,o)}else i();this._hoverState=""}},i.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},i.isWithContent=function(){return Boolean(this.getTitle())},i.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-tooltip-"+t)},i.getTipElement=function(){if(this.tip)return this.tip;var t=document.createElement("div");return t.innerHTML=this.config.template,this.tip=t.children[0],this.tip},i.setContent=function(){var t=this.getTipElement();this.setElementContent(G.findOne(rn,t),this.getTitle()),t.classList.remove(on),t.classList.remove(sn)},i.setElementContent=function(t,e){if(null!==t)return"object"==typeof e&&(e.nodeType||e.jquery)?(e.jquery&&(e=e[0]),void(this.config.html?e.parentNode!==t&&(t.innerHTML="",t.appendChild(e)):t.innerText=e.textContent)):void(this.config.html?(this.config.sanitize&&(e=Ge(e,this.config.whiteList,this.config.sanitizeFn)),t.innerHTML=e):t.innerText=e)},i.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},i._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=o({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},i._getContainer=function(){return!1===this.config.container?document.body:E(this.config.container)?this.config.container:G.findOne(this.config.container)},i._getAttachment=function(t){return $e[t.toUpperCase()]},i._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach(function(e){if("click"===e)F.on(t.element,t.constructor.Event.CLICK,t.config.selector,function(e){return t.toggle(e)});else if(e!==hn){var n=e===ln?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,i=e===ln?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;F.on(t.element,n,t.config.selector,function(e){return t._enter(e)}),F.on(t.element,i,t.config.selector,function(e){return t._leave(e)})}}),F.on(G.closest(this.element,".modal"),"hide.bs.modal",function(){t.element&&t.hide()}),this.config.selector?this.config=o({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},i._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},i._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||w.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),w.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusin"===t.type?cn:ln]=!0),e.getTipElement().classList.contains(sn)||e._hoverState===tn?e._hoverState=tn:(clearTimeout(e._timeout),e._hoverState=tn,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===tn&&e.show()},e.config.delay.show):e.show())},i._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||w.getData(t.delegateTarget,n))||(e=new this.constructor(t.delegateTarget,this._getDelegateConfig()),w.setData(t.delegateTarget,n,e)),t&&(e._activeTrigger["focusout"===t.type?cn:ln]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=en,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===en&&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=mt.getDataAttributes(this.element);return Object.keys(e).forEach(function(t){-1!==ze.indexOf(t)&&delete e[t]}),t&&"object"==typeof t.container&&t.container.jquery&&(t.container=t.container[0]),"number"==typeof(t=o({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),b(Xe,t,this.constructor.DefaultType),t.sanitize&&(t.template=Ge(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(qe);null!==e&&e.length&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},i._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},i._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(t.classList.remove(on),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},e._jQueryInterface=function(t){return this.each(function(){var n=w.getData(this,"bs.tooltip"),i="object"==typeof t&&t;if((n||!/dispose|hide/.test(t))&&(n||(n=new e(this,i)),"string"==typeof t)){if(void 0===n[t])throw new TypeError('No method named "'+t+'"');n[t]()}})},e._getInstance=function(t){return w.getData(t,"bs.tooltip")},n(e,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Je}},{key:"NAME",get:function(){return Xe}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return nn}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Ze}}]),e}();if(void 0!==g){var dn=g.fn.tooltip;g.fn.tooltip=fn._jQueryInterface,g.fn.tooltip.Constructor=fn,g.fn.tooltip.noConflict=function(){return g.fn.tooltip=dn,fn._jQueryInterface}}var gn="popover",_n=new RegExp("(^|\\s)bs-popover\\S+","g"),pn=o({},fn.Default,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="popover-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>'}),mn=o({},fn.DefaultType,{content:"(string|element|function)"}),vn="fade",En="show",yn=".popover-header",bn=".popover-body",Dn={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"},Tn=function(t){var e,i;function o(){return t.apply(this,arguments)||this}i=t,(e=o).prototype=Object.create(i.prototype),e.prototype.constructor=e,e.__proto__=i;var s=o.prototype;return s.isWithContent=function(){return this.getTitle()||this._getContent()},s.addAttachmentClass=function(t){this.getTipElement().classList.add("bs-popover-"+t)},s.setContent=function(){var t=this.getTipElement();this.setElementContent(G.findOne(yn,t),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(G.findOne(bn,t),e),t.classList.remove(vn),t.classList.remove(En)},s._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},s._cleanTipClass=function(){var t=this.getTipElement(),e=t.getAttribute("class").match(_n);null!==e&&e.length>0&&e.map(function(t){return t.trim()}).forEach(function(e){return t.classList.remove(e)})},o._jQueryInterface=function(t){return this.each(function(){var e=w.getData(this,"bs.popover"),n="object"==typeof t?t:null;if((e||!/dispose|hide/.test(t))&&(e||(e=new o(this,n),w.setData(this,"bs.popover",e)),"string"==typeof t)){if(void 0===e[t])throw new TypeError('No method named "'+t+'"');e[t]()}})},o._getInstance=function(t){return w.getData(t,"bs.popover")},n(o,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return pn}},{key:"NAME",get:function(){return gn}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return Dn}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return mn}}]),o}(fn);if(void 0!==g){var In=g.fn.popover;g.fn.popover=Tn._jQueryInterface,g.fn.popover.Constructor=Tn,g.fn.popover.noConflict=function(){return g.fn.popover=In,Tn._jQueryInterface}}var An="scrollspy",Sn="bs.scrollspy",wn="."+Sn,Ln={offset:10,method:"auto",target:""},On={offset:"number",method:"string",target:"(string|element)"},Cn={ACTIVATE:"activate"+wn,SCROLL:"scroll"+wn,LOAD_DATA_API:"load"+wn+".data-api"},Nn={DROPDOWN_ITEM:"dropdown-item",ACTIVE:"active"},kn={DATA_SPY:'[data-spy="scroll"]',NAV_LIST_GROUP:".nav, .list-group",NAV_LINKS:".nav-link",NAV_ITEMS:".nav-item",LIST_ITEMS:".list-group-item",DROPDOWN:".dropdown",DROPDOWN_TOGGLE:".dropdown-toggle"},Pn="offset",Hn="position",jn=function(){function t(t,e){var n=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(e),this._selector=this._config.target+" "+kn.NAV_LINKS+","+this._config.target+" "+kn.LIST_ITEMS+","+this._config.target+" ."+Nn.DROPDOWN_ITEM,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,F.on(this._scrollElement,Cn.SCROLL,function(t){return n._process(t)}),this.refresh(),this._process(),w.setData(t,Sn,this)}var e=t.prototype;return e.refresh=function(){var t=this,e=this._scrollElement===this._scrollElement.window?Pn:Hn,n="auto"===this._config.method?e:this._config.method,i=n===Hn?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),D(G.find(this._selector)).map(function(t){var e,o=p(t);if(o&&(e=G.findOne(o)),e){var s=e.getBoundingClientRect();if(s.width||s.height)return[mt[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(){w.removeData(this._element,Sn),F.off(this._scrollElement,wn),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},e._getConfig=function(t){if("string"!=typeof(t=o({},Ln,"object"==typeof t&&t?t:{})).target){var e=t.target.id;e||(e=_(An),t.target.id=e),t.target="#"+e}return b(An,t,On),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=G.findOne(e.join(","));n.classList.contains(Nn.DROPDOWN_ITEM)?(G.findOne(kn.DROPDOWN_TOGGLE,G.closest(n,kn.DROPDOWN)).classList.add(Nn.ACTIVE),n.classList.add(Nn.ACTIVE)):(n.classList.add(Nn.ACTIVE),G.parents(n,kn.NAV_LIST_GROUP).forEach(function(t){G.prev(t,kn.NAV_LINKS+", "+kn.LIST_ITEMS).forEach(function(t){return t.classList.add(Nn.ACTIVE)}),G.prev(t,kn.NAV_ITEMS).forEach(function(t){G.children(t,kn.NAV_LINKS).forEach(function(t){return t.classList.add(Nn.ACTIVE)})})})),F.trigger(this._scrollElement,Cn.ACTIVATE,{relatedTarget:t})},e._clear=function(){D(G.find(this._selector)).filter(function(t){return t.classList.contains(Nn.ACTIVE)}).forEach(function(t){return t.classList.remove(Nn.ACTIVE)})},t._jQueryInterface=function(e){return this.each(function(){var n=w.getData(this,Sn);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 w.getData(t,Sn)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Ln}}]),t}();if(F.on(window,Cn.LOAD_DATA_API,function(){D(G.find(kn.DATA_SPY)).forEach(function(t){return new jn(t,mt.getDataAttributes(t))})}),void 0!==g){var Mn=g.fn[An];g.fn[An]=jn._jQueryInterface,g.fn[An].Constructor=jn,g.fn[An].noConflict=function(){return g.fn[An]=Mn,jn._jQueryInterface}}var Rn="bs.tab",Wn="."+Rn,xn={HIDE:"hide"+Wn,HIDDEN:"hidden"+Wn,SHOW:"show"+Wn,SHOWN:"shown"+Wn,CLICK_DATA_API:"click"+Wn+".data-api"},Un="dropdown-menu",Kn="active",Vn="disabled",Bn="fade",Fn="show",Qn=".dropdown",Yn=".nav, .list-group",Gn=".active",Xn=":scope > li > .active",qn='[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',zn=".dropdown-toggle",Zn=":scope > .dropdown-menu .active",$n=function(){function t(t){this._element=t,w.setData(this._element,Rn,this)}var e=t.prototype;return e.show=function(){var t=this;if(!(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains(Kn)||this._element.classList.contains(Vn))){var e,n,i=G.closest(this._element,Yn),o=p(this._element);if(i){var s="UL"===i.nodeName||"OL"===i.nodeName?Xn:Gn;n=(n=D(G.find(s,i)))[n.length-1]}var r=null;if(n&&(r=F.trigger(n,xn.HIDE,{relatedTarget:this._element})),!(F.trigger(this._element,xn.SHOW,{relatedTarget:n}).defaultPrevented||null!==r&&r.defaultPrevented)){o&&(e=G.findOne(o)),this._activate(this._element,i);var a=function(){F.trigger(n,xn.HIDDEN,{relatedTarget:t._element}),F.trigger(t._element,xn.SHOWN,{relatedTarget:n})};e?this._activate(e,e.parentNode,a):a()}}},e.dispose=function(){w.removeData(this._element,Rn),this._element=null},e._activate=function(t,e,n){var i=this,o=(!e||"UL"!==e.nodeName&&"OL"!==e.nodeName?G.children(e,Gn):G.find(Xn,e))[0],s=n&&o&&o.classList.contains(Bn),r=function(){return i._transitionComplete(t,o,n)};if(o&&s){var a=m(o);o.classList.remove(Fn),F.one(o,d,r),y(o,a)}else r()},e._transitionComplete=function(t,e,n){if(e){e.classList.remove(Kn);var i=G.findOne(Zn,e.parentNode);i&&i.classList.remove(Kn),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!1)}(t.classList.add(Kn),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),A(t),t.classList.contains(Bn)&&t.classList.add(Fn),t.parentNode&&t.parentNode.classList.contains(Un))&&(G.closest(t,Qn)&&D(G.find(zn)).forEach(function(t){return t.classList.add(Kn)}),t.setAttribute("aria-expanded",!0));n&&n()},t._jQueryInterface=function(e){return this.each(function(){var n=w.getData(this,Rn)||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 w.getData(t,Rn)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}}]),t}();if(F.on(document,xn.CLICK_DATA_API,qn,function(t){t.preventDefault(),(w.getData(this,Rn)||new $n(this)).show()}),void 0!==g){var Jn=g.fn.tab;g.fn.tab=$n._jQueryInterface,g.fn.tab.Constructor=$n,g.fn.tab.noConflict=function(){return g.fn.tab=Jn,$n._jQueryInterface}}var ti="bs.toast",ei="."+ti,ni={CLICK_DISMISS:"click.dismiss"+ei,HIDE:"hide"+ei,HIDDEN:"hidden"+ei,SHOW:"show"+ei,SHOWN:"shown"+ei},ii="fade",oi="hide",si="show",ri="showing",ai={animation:"boolean",autohide:"boolean",delay:"number"},li={animation:!0,autohide:!0,delay:500},ci='[data-dismiss="toast"]',ui=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners(),w.setData(t,ti,this)}var e=t.prototype;return e.show=function(){var t=this;F.trigger(this._element,ni.SHOW),this._config.animation&&this._element.classList.add(ii);var e=function(){t._element.classList.remove(ri),t._element.classList.add(si),F.trigger(t._element,ni.SHOWN),t._config.autohide&&t.hide()};if(this._element.classList.remove(oi),this._element.classList.add(ri),this._config.animation){var n=m(this._element);F.one(this._element,d,e),y(this._element,n)}else e()},e.hide=function(t){var e=this;this._element.classList.contains(si)&&(F.trigger(this._element,ni.HIDE),t?this._close():this._timeout=setTimeout(function(){e._close()},this._config.delay))},e.dispose=function(){clearTimeout(this._timeout),this._timeout=null,this._element.classList.contains(si)&&this._element.classList.remove(si),F.off(this._element,ni.CLICK_DISMISS),w.removeData(this._element,ti),this._element=null,this._config=null},e._getConfig=function(t){return t=o({},li,mt.getDataAttributes(this._element),"object"==typeof t&&t?t:{}),b("toast",t,this.constructor.DefaultType),t},e._setListeners=function(){var t=this;F.on(this._element,ni.CLICK_DISMISS,ci,function(){return t.hide(!0)})},e._close=function(){var t=this,e=function(){t._element.classList.add(oi),F.trigger(t._element,ni.HIDDEN)};if(this._element.classList.remove(si),this._config.animation){var n=m(this._element);F.one(this._element,d,e),y(this._element,n)}else e()},t._jQueryInterface=function(e){return this.each(function(){var n=w.getData(this,ti);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 w.getData(t,ti)},n(t,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"DefaultType",get:function(){return ai}},{key:"Default",get:function(){return li}}]),t}();if(void 0!==g){var hi=g.fn.toast;g.fn.toast=ui._jQueryInterface,g.fn.toast.Constructor=ui,g.fn.toast.noConflict=function(){return g.fn.toast=hi,ui._jQueryInterface}}return{Alert:tt,Button:dt,Carousel:Wt,Collapse:Jt,Dropdown:Se,Modal:Ue,Popover:Tn,ScrollSpy:jn,Tab:$n,Toast:ui,Tooltip:fn}});
//# 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 dadd93db14..d5f09b6136 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/eventHandler.js","../../js/src/dom/selectorEngine.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":["storeData","id","e","element","defaultPreventedPreservedOnDispatch","find","findOne","scopeSelectorRegex","TRANSITION_END","jQuery","window","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","selector","getAttribute","hrefAttr","trim","querySelector","err","getTransitionDurationFromElement","_window$getComputedSt","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","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","noop","reflow","offsetHeight","mapData","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Polyfill","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","Element","prototype","querySelectorAll","this","hasId","Boolean","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","uidList","i","length","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","oneOff","_normalizeParams","handlers","previousFn","fn","domElements","target","EventHandler","off","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","substr","keyHandlers","trigger","args","jQueryEvent","isNative","bubbles","nativeDispatch","evt","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","findFn","SelectorEngine","documentElement","children","_this","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","siblings","previous","previousSibling","DATA_KEY","EVENT_KEY","CLOSE","CLOSED","CLICK_DATA_API","ClassName","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","Selector","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","NAME","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","ACTIVE","ACTIVE_ITEM","ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","pointerType","clientX","touches","end","clearTimeout","itemImg","move","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOW","SHOWN","HIDE","HIDDEN","Dimension","ACTIVES","DATA_TOGGLE","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","AttachmentMap","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","Popper","TypeError","referenceElement","_getPopperConfig","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","hideEvent","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","_this9","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","_this10","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","*","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","_loop","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","TOP","RIGHT","BOTTOM","LEFT","HoverState","INSERTED","FOCUSOUT","Trigger","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","findShadowRoot","attachShadow","getRootNode","root","ShadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","content","innerText","textContent","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","Popover","_getContent","method","ACTIVATE","SCROLL","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","node","spy","Tab","listElement","itemSelector","active","_transitionComplete","dropdownChild","dropdown","autohide","Toast","withoutTimeout","_close"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst jQuery = window.jQuery\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = (obj) => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = (prefix) => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n}\n\nconst getSelectorFromElement = (element) => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = (element) => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = (element) => {\n 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' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = (nodeList) => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = (element) => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = (element) => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = (element) => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n 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","/**\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 {\n getUID\n} from '../util/index'\n\n/* istanbul ignore next */\nconst Polyfill = (() => {\n // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\n const 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\n let find = Element.prototype.querySelectorAll\n let findOne = Element.prototype.querySelector\n\n const scopeSelectorRegex = /:scope\\b/\n const supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (e) {\n return false\n }\n\n return true\n })()\n\n if (!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\n return {\n defaultPreventedPreservedOnDispatch,\n find,\n findOne\n }\n})()\n\nexport default Polyfill\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from '../util/index'\nimport Polyfill from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click', 'dblclick', 'mouseup', 'mousedown', 'contextmenu',\n 'mousewheel', 'DOMMouseScroll',\n 'mouseover', 'mouseout', 'mousemove', 'selectstart', 'selectend',\n 'keydown', 'keypress', 'keyup',\n 'orientationchange',\n 'touchstart', 'touchmove', 'touchend', 'touchcancel',\n 'pointerdown', 'pointermove', 'pointerup', 'pointerleave', 'pointercancel',\n 'gesturestart', 'gesturechange', 'gestureend',\n 'focus', 'blur', 'change', 'reset', 'select', 'submit', 'focusin', 'focusout',\n 'load', 'unload', 'beforeunload', 'resize', 'move', 'DOMContentLoaded', 'readystatechange',\n 'error', 'abort', '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 element.uidEvent = uid\n\n return eventRegistry[uid] = 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.charCode : event.keyCode\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 && 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 uidList = Object.keys(events)\n\n for (let i = 0; i < uidList.length; i++) {\n const uid = uidList[i]\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\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 ? bootstrapHandler(element, handler) : bootstrapDelegationHandler(element, handler, delegationFn)\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 === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach((handlerKey) => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach((elementEvent) => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach((keyHandlers) => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = 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 (!Polyfill.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/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Polyfill from './polyfill'\nimport {\n makeArray\n} from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst findFn = Polyfill.find\nconst findOne = Polyfill.findOne\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 if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter((child) => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return element.closest(selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, (event) => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input:not([type=\"hidden\"])',\n ACTIVE : '.active',\n BUTTON : '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API : `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n 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 button.classList.add(ClassName.FOCUS)\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.remove(ClassName.FOCUS)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, (chr) => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach((key) => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true,\n touch : true\n}\n\nconst DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean',\n touch : 'boolean'\n}\n\nconst Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n}\n\nconst Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHSTART : `touchstart${EVENT_KEY}`,\n TOUCHMOVE : `touchmove${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n POINTERDOWN : `pointerdown${EVENT_KEY}`,\n POINTERUP : `pointerup${EVENT_KEY}`,\n DRAG_START : `dragstart${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item',\n POINTER_EVENT : 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n ITEM_IMG : '.carousel-item img',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH : 'touch',\n PEN : 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, (event) => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, (event) => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = (event) => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = (event) => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = (event) => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach((itemImg) => {\n EventHandler.on(itemImg, Event.DRAG_START, (e) => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, (event) => start(event))\n EventHandler.on(this._element, Event.POINTERUP, (event) => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, (event) => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, (event) => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, (event) => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode\n ? makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode))\n : []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new Error(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle : true,\n parent : ''\n}\n\nconst DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n}\n\nconst Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n}\n\nconst Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n}\n\nconst Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter((foundElem) => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter((elem) => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter((elem) => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach((elemActive) => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach((element) => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (isElement(this._config.parent)) {\n parent = this._config.parent\n\n // it's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined' || typeof this._config.parent[0] !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(this._config.parent)\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach((element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach((elem) => {\n if (!isOpen) {\n elem.classList.add(ClassName.COLLAPSED)\n } else {\n elem.classList.remove(ClassName.COLLAPSED)\n }\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach((element) => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n}\n\nconst Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n}\n\nconst DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach((elem) => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach((elem) => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n}\n\nconst DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE : 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n DIALOG : '.modal-dialog',\n MODAL_BODY : '.modal-body',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, (event) => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, (event) => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach((htmlElement) => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE)\n ? ClassName.FADE\n : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach((element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach((element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach((element) => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach((element) => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n } else {\n document.body.style.paddingRight = ''\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY)\n ? 'toggle' : {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, (showEvent) => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n makeArray\n} from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach((attr) => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\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\n\nconst DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string|function)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)',\n sanitize : 'boolean',\n sanitizeFn : '(null|function)',\n whiteList : 'object'\n}\n\nconst AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n}\n\nconst Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent',\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW : 'show',\n OUT : 'out'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n TOOLTIP_ARROW : '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n}\n\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot !== null\n ? shadowRoot.contains(this.element)\n : this.element.ownerDocument.documentElement.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach((element) => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach((element) => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach((dataAttr) => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map((token) => token.trim())\n .forEach((tClass) => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n}\n\nconst ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map((token) => token.trim())\n .forEach((tClass) => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset : 10,\n method : 'auto',\n target : ''\n}\n\nconst DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n}\n\nconst Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n}\n\nconst Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\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.id\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\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 : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\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 return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map((selector) => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach((listGroup) => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach((item) => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach((navItem) => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach((item) => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter((node) => node.classList.contains(ClassName.ACTIVE))\n .forEach((node) => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach((spy) => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : ':scope > li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL')\n ? SelectorEngine.find(Selector.ACTIVE_UL, container)\n : SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach((dropdown) => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE : 'fade',\n HIDE : 'hide',\n SHOW : 'show',\n SHOWING : 'showing'\n}\n\nconst DefaultType = {\n animation : 'boolean',\n autohide : 'boolean',\n delay : 'number'\n}\n\nconst Default = {\n animation : true,\n autohide : true,\n delay : 500\n}\n\nconst Selector = {\n DATA_DISMISS : '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n"]} \ No newline at end of file
+{"version":3,"sources":["../../js/src/util/index.js","../../js/src/dom/data.js","../../js/src/dom/polyfill.js","../../js/src/dom/eventHandler.js","../../js/src/dom/selectorEngine.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","defaultPreventedPreservedOnDispatch","find","findOne","scopeSelectorRegex","TRANSITION_END","jQuery","window","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","selector","getAttribute","hrefAttr","trim","querySelector","error","getTransitionDurationFromElement","_window$getComputedSt","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","makeArray","nodeList","slice","isVisible","style","parentNode","display","visibility","noop","reflow","offsetHeight","mapData","set","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData","Polyfill","CustomEvent","cancelable","createElement","preventDefault","defaultPrevented","Element","prototype","querySelectorAll","this","hasId","Boolean","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","uidList","i","length","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","indexOf","addHandler","oneOff","_normalizeParams","handlers","previousFn","fn","domElements","target","EventHandler","off","apply","bootstrapDelegationHandler","bootstrapHandler","removeHandler","on","one","_normalizeParams2","inNamespace","isNamespace","charAt","elementEvent","namespace","storeElementEvent","handlerKey","removeNamespacedHandlers","substr","keyHandlers","trigger","args","jQueryEvent","isNative","bubbles","nativeDispatch","evt","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","defineProperty","findFn","SelectorEngine","documentElement","children","_this","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","closest","prev","siblings","previous","previousSibling","DATA_KEY","EVENT_KEY","CLOSE","CLOSED","CLICK_DATA_API","ClassName","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","_removeElement","dispose","parent","classList","remove","contains","_destroyElement","removeChild","_jQueryInterface","each","_handleDismiss","alertInstance","_getInstance","JQUERY_NO_CONFLICT","Constructor","noConflict","Selector","FOCUS_DATA_API","BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","hasAttribute","focus","setAttribute","button","add","normalizeData","val","Number","normalizeDataKey","chr","Manipulator","setDataAttribute","removeDataAttribute","getDataAttributes","attributes","_objectSpread","dataset","getDataAttribute","offset","rect","getBoundingClientRect","top","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","NAME","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","ACTIVE","ACTIVE_ITEM","ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","pointerType","clientX","touches","end","clearTimeout","itemImg","move","tagName","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","from","_setActiveIndicatorElement","indicators","nextIndicator","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","nextElementInterval","parseInt","defaultInterval","_carouselInterface","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","len","SHOW","SHOWN","HIDE","HIDDEN","Dimension","ACTIVES","DATA_TOGGLE","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","container","tempActiveData","elemActive","_collapseInterface","dimension","_getDimension","setTransitioning","scrollSize","triggerArrayLength","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","triggerData","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","AttachmentMap","flip","boundary","reference","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","Popper","referenceElement","_getPopperConfig","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","hideEvent","transition","_hideModal","htmlElement","handleUpdate","appendChild","_enforceFocus","transitionComplete","_this5","_this6","_this7","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","_this8","animate","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","right","innerWidth","_getScrollbarWidth","_this9","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","width","clientWidth","_this10","uriAttrs","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","DefaultWhitelist","*","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","elements","_loop","el","elName","attributeList","whitelistedAttributes","concat","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","fallbackPlacement","sanitize","AUTO","TOP","RIGHT","BOTTOM","LEFT","HoverState","INSERTED","FOCUSOUT","Trigger","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","findShadowRoot","attachShadow","getRootNode","root","ShadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","content","innerText","textContent","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","tabClass","map","token","tClass","popperData","popperInstance","popper","initConfigAnimation","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_TOGGLE","OffsetMethod","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","height","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","queries","link","join","listGroup","navItem","node","spy","Tab","listElement","itemSelector","active","_transitionComplete","dropdownChild","dropdown","autohide","Toast","withoutTimeout","_close"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n 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 makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n","/**\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 {\n getUID\n} from '../util/index'\n\n/* istanbul ignore next */\nconst Polyfill = (() => {\n // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\n const 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\n let find = Element.prototype.querySelectorAll\n let findOne = Element.prototype.querySelector\n\n const scopeSelectorRegex = /:scope\\b/\n const supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n })()\n\n if (!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\n return {\n defaultPreventedPreservedOnDispatch,\n find,\n findOne\n }\n})()\n\nexport default Polyfill\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/eventHandler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from '../util/index'\nimport Polyfill from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidList = Object.keys(events)\n\n for (let i = 0; i < uidList.length; i++) {\n const uid = uidList[i]\n const event = events[uid]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return events[uid]\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (fn === null) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = 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 (!Polyfill.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/selectorEngine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Polyfill from './polyfill'\nimport {\n makeArray\n} from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst { find: findFn, findOne } = Polyfill\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 if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return element.closest(selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Selector = {\n DISMISS: '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE: `close${EVENT_KEY}`,\n CLOSED: `closed${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT: 'alert',\n FADE: 'fade',\n SHOW: 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${ClassName.ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, Event.CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(ClassName.SHOW)\n\n if (!element.classList.contains(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, event => this._destroyElement(element, event))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, Event.CLOSED)\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()))\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert._jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n }\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ClassName = {\n ACTIVE: 'active',\n BUTTON: 'btn',\n FOCUS: 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT: '[data-toggle^=\"button\"]',\n DATA_TOGGLE: '[data-toggle=\"buttons\"]',\n INPUT: 'input:not([type=\"hidden\"])',\n ACTIVE: '.active',\n BUTTON: '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_DATA_API: `focus${EVENT_KEY}${DATA_API_KEY}`,\n BLUR_DATA_API: `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n Selector.DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(Selector.INPUT, this._element)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(ClassName.BUTTON)) {\n button = SelectorEngine.closest(button, Selector.BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n Data.setData(button, DATA_KEY, data)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, Event.FOCUS_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.add(ClassName.FOCUS)\n})\n\nEventHandler.on(document, Event.BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, Selector.BUTTON)\n button.classList.remove(ClassName.FOCUS)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button._jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n }\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => chr.toLowerCase())\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst Direction = {\n NEXT: 'next',\n PREV: 'prev',\n LEFT: 'left',\n RIGHT: 'right'\n}\n\nconst Event = {\n SLIDE: `slide${EVENT_KEY}`,\n SLID: `slid${EVENT_KEY}`,\n KEYDOWN: `keydown${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`,\n TOUCHSTART: `touchstart${EVENT_KEY}`,\n TOUCHMOVE: `touchmove${EVENT_KEY}`,\n TOUCHEND: `touchend${EVENT_KEY}`,\n POINTERDOWN: `pointerdown${EVENT_KEY}`,\n POINTERUP: `pointerup${EVENT_KEY}`,\n DRAG_START: `dragstart${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL: 'carousel',\n ACTIVE: 'active',\n SLIDE: 'slide',\n RIGHT: 'carousel-item-right',\n LEFT: 'carousel-item-left',\n NEXT: 'carousel-item-next',\n PREV: 'carousel-item-prev',\n ITEM: 'carousel-item',\n POINTER_EVENT: 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE: '.active',\n ACTIVE_ITEM: '.active.carousel-item',\n ITEM: '.carousel-item',\n ITEM_IMG: '.carousel-item img',\n NEXT_PREV: '.carousel-item-next, .carousel-item-prev',\n INDICATORS: '.carousel-indicators',\n DATA_SLIDE: '[data-slide], [data-slide-to]',\n DATA_RIDE: '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(Selector.INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(Selector.NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, Event.KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, Event.MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, Event.MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n makeArray(SelectorEngine.find(Selector.ITEM_IMG, this._element)).forEach(itemImg => {\n EventHandler.on(itemImg, Event.DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, Event.POINTERDOWN, event => start(event))\n EventHandler.on(this._element, Event.POINTERUP, event => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n EventHandler.on(this._element, Event.TOUCHSTART, event => start(event))\n EventHandler.on(this._element, Event.TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, Event.TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n makeArray(SelectorEngine.find(Selector.ITEM, element.parentNode)) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(Selector.ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(ClassName.ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(Selector.ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(ClassName.SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(ClassName.ACTIVE)\n\n activeElement.classList.remove(ClassName.ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(ClassName.ACTIVE)\n nextElement.classList.add(ClassName.ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Carousel._carouselInterface(this, config)\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = SelectorEngine.findOne(selector)\n\n if (!target || !target.classList.contains(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n const carousels = makeArray(SelectorEngine.find(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel._carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isElement,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst Event = {\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW: 'show',\n COLLAPSE: 'collapse',\n COLLAPSING: 'collapsing',\n COLLAPSED: 'collapsed'\n}\n\nconst Dimension = {\n WIDTH: 'width',\n HEIGHT: 'height'\n}\n\nconst Selector = {\n ACTIVES: '.show, .collapsing',\n DATA_TOGGLE: '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = makeArray(SelectorEngine.find(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = makeArray(SelectorEngine.find(selector))\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = makeArray(SelectorEngine.find(Selector.ACTIVES, this._parent))\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse._collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(ClassName.COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n this._element.classList.add(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, Event.HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(ClassName.COLLAPSING)\n this._element.classList.remove(ClassName.COLLAPSE)\n this._element.classList.remove(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const elem = SelectorEngine.findOne(selector)\n\n if (!elem.classList.contains(ClassName.SHOW)) {\n trigger.classList.add(ClassName.COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(ClassName.COLLAPSING)\n this._element.classList.add(ClassName.COLLAPSE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${parent}\"]`\n\n makeArray(SelectorEngine.find(selector, parent))\n .forEach(element => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(ClassName.SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(ClassName.COLLAPSED)\n } else {\n elem.classList.add(ClassName.COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = getSelectorFromElement(element)\n return selector ? SelectorEngine.findOne(selector) : null\n }\n\n static _collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Collapse._collapseInterface(this, config)\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = makeArray(SelectorEngine.find(selector))\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse._collapseInterface(element, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus')\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n isVisible,\n makeArray,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(Selector.DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, Event.MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, Event.MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (!this._isShown || hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, Event.FOCUSIN)\n\n this._element.classList.remove(ClassName.SHOW)\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n EventHandler.off(this._dialog, Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, Event.FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(ClassName.SCROLLABLE)) {\n SelectorEngine.findOne(Selector.MODAL_BODY, this._dialog).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, Event.FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, Event.FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n EventHandler.on(this._element, Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n EventHandler.off(this._element, Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, Event.RESIZE, event => this.handleUpdate(event))\n } else {\n EventHandler.off(window, Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(ClassName.FADE) ?\n ClassName.FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (this._element.classList.contains(ClassName.FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n makeArray(SelectorEngine.find(Selector.STICKY_CONTENT))\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n makeArray(SelectorEngine.find(Selector.FIXED_CONTENT))\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n makeArray(SelectorEngine.find(`${Selector.STICKY_CONTENT}`))\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = getSelectorFromElement(this)\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n const config = Data.getData(target, DATA_KEY) ?\n 'toggle' :\n {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, Event.SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, Event.HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n makeArray\n} from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n TOOLTIP_ARROW: '.tooltip-arrow'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal')\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.TOOLTIP_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $\n} from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selectorEngine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(Selector.TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(Selector.CONTENT, tip), content)\n\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n getUID,\n makeArray,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst Event = {\n ACTIVATE: `activate${EVENT_KEY}`,\n SCROLL: `scroll${EVENT_KEY}`,\n LOAD_DATA_API: `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n}\n\nconst Selector = {\n DATA_SPY: '[data-spy=\"scroll\"]',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} .${ClassName.DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, Event.SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n OffsetMethod.OFFSET :\n OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = makeArray(SelectorEngine.find(this._selector))\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(ClassName.DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(Selector.DROPDOWN_TOGGLE, SelectorEngine.closest(link, Selector.DROPDOWN))\n .classList.add(ClassName.ACTIVE)\n\n link.classList.add(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(ClassName.ACTIVE)\n\n SelectorEngine\n .parents(link, Selector.NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, Selector.NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, Selector.NAV_LINKS)\n .forEach(item => item.classList.add(ClassName.ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n makeArray(SelectorEngine.find(this._selector))\n .filter(node => node.classList.contains(ClassName.ACTIVE))\n .forEach(node => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, Event.LOAD_DATA_API, () => {\n makeArray(SelectorEngine.find(Selector.DATA_SPY))\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n makeArray,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport SelectorEngine from './dom/selectorEngine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU: 'dropdown-menu',\n ACTIVE: 'active',\n DISABLED: 'disabled',\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n DROPDOWN: '.dropdown',\n NAV_LIST_GROUP: '.nav, .list-group',\n ACTIVE: '.active',\n ACTIVE_UL: ':scope > li > .active',\n DATA_TOGGLE: '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE: '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD: ':scope > .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(ClassName.ACTIVE) ||\n this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = SelectorEngine.closest(this._element, Selector.NAV_LIST_GROUP)\n const selector = getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = makeArray(SelectorEngine.find(itemSelector, listElement))\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, Event.HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, Event.SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n hideEvent !== null && hideEvent.defaultPrevented) {\n return\n }\n\n if (selector) {\n target = SelectorEngine.findOne(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, Event.HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, Event.SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(Selector.ACTIVE_UL, container) :\n SelectorEngine.children(container, Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(ClassName.SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(ClassName.ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(Selector.DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, Selector.DROPDOWN)\n\n if (dropdownElement) {\n makeArray(SelectorEngine.find(Selector.DROPDOWN_TOGGLE))\n .forEach(dropdown => dropdown.classList.add(ClassName.ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/eventHandler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n EventHandler.trigger(this._element, Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.umd.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Alert from './src/alert'\nimport Button from './src/button'\nimport Carousel from './src/carousel'\nimport Collapse from './src/collapse'\nimport Dropdown from './src/dropdown'\nimport Modal from './src/modal'\nimport Popover from './src/popover'\nimport ScrollSpy from './src/scrollspy'\nimport Tab from './src/tab'\nimport Toast from './src/toast'\nimport Tooltip from './src/tooltip'\n\nexport default {\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n ScrollSpy,\n Tab,\n Toast,\n Tooltip\n}\n"]} \ No newline at end of file