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/js/dist
diff options
context:
space:
mode:
authorMark Otto <markdotto@gmail.com>2019-07-13 00:56:26 +0300
committerMark Otto <markdotto@gmail.com>2019-07-13 00:56:26 +0300
commit39c4ca3970bb14372b905952699711fdd11650e6 (patch)
tree1e439928b77707924a70bd79df66d4199b0410da /js/dist
parentaaf03bdc9e3cfa0d625f9758ad059c0db9fe2abe (diff)
dist v5
Diffstat (limited to 'js/dist')
-rw-r--r--js/dist/dom/event-handler.js178
-rw-r--r--js/dist/dom/event-handler.js.map2
-rw-r--r--js/dist/dom/polyfill.js196
-rw-r--r--js/dist/dom/polyfill.js.map2
-rw-r--r--js/dist/dom/selector-engine.js179
-rw-r--r--js/dist/dom/selector-engine.js.map2
-rw-r--r--js/dist/dropdown.js2
-rw-r--r--js/dist/dropdown.js.map2
-rw-r--r--js/dist/toast.js12
-rw-r--r--js/dist/toast.js.map2
-rw-r--r--js/dist/tooltip.js14
-rw-r--r--js/dist/tooltip.js.map2
12 files changed, 174 insertions, 419 deletions
diff --git a/js/dist/dom/event-handler.js b/js/dist/dom/event-handler.js
index 2756f17d88..b07de040e5 100644
--- a/js/dist/dom/event-handler.js
+++ b/js/dist/dom/event-handler.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' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = global || self, global.EventHandler = factory());
-}(this, function () { 'use strict';
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./polyfill.js')) :
+ typeof define === 'function' && define.amd ? define(['./polyfill.js'], factory) :
+ (global = global || self, global.EventHandler = factory(global.Polyfill));
+}(this, function (polyfill_js) { 'use strict';
/**
* --------------------------------------------------------------------------
@@ -15,163 +15,8 @@
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
- var MAX_UID = 1000000;
var _window = window,
jQuery = _window.jQuery; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
- /**
- * --------------------------------------------------------------------------
- * Public Util Api
- * --------------------------------------------------------------------------
- */
-
-
- var getUID = function 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;
- };
-
- /* istanbul ignore file */
- var _Element$prototype = Element.prototype,
- matches = _Element$prototype.matches,
- closest = _Element$prototype.closest;
- var find = Element.prototype.querySelectorAll;
- var findOne = Element.prototype.querySelector;
-
- var createCustomEvent = function createCustomEvent(eventName, params) {
- var cEvent = new CustomEvent(eventName, params);
- return cEvent;
- };
-
- if (typeof window.CustomEvent !== 'function') {
- createCustomEvent = function createCustomEvent(eventName, params) {
- params = params || {
- bubbles: false,
- cancelable: false,
- detail: null
- };
- var evt = document.createEvent('CustomEvent');
- evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail);
- return evt;
- };
- }
-
- var workingDefaultPrevented = function () {
- var e = document.createEvent('CustomEvent');
- e.initEvent('Bootstrap', true, true);
- e.preventDefault();
- return e.defaultPrevented;
- }();
-
- if (!workingDefaultPrevented) {
- var origPreventDefault = Event.prototype.preventDefault;
-
- Event.prototype.preventDefault = function () {
- if (!this.cancelable) {
- return;
- }
-
- origPreventDefault.call(this);
- Object.defineProperty(this, 'defaultPrevented', {
- get: function get() {
- return true;
- },
- configurable: true
- });
- };
- } // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached
-
-
- var defaultPreventedPreservedOnDispatch = function () {
- var e = createCustomEvent('Bootstrap', {
- cancelable: true
- });
- var element = document.createElement('div');
- element.addEventListener('Bootstrap', function () {
- return null;
- });
- e.preventDefault();
- element.dispatchEvent(e);
- return e.defaultPrevented;
- }();
-
- if (!matches) {
- matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
- }
-
- if (!closest) {
- closest = function closest(selector) {
- var element = this;
-
- do {
- if (matches.call(element, selector)) {
- return element;
- }
-
- element = element.parentElement || element.parentNode;
- } while (element !== null && element.nodeType === 1);
-
- return null;
- };
- }
-
- var scopeSelectorRegex = /:scope\b/;
-
- var supportScopeQuery = function () {
- var 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);
- }
-
- var hasId = Boolean(this.id);
-
- if (!hasId) {
- this.id = getUID('scope');
- }
-
- var 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);
- }
-
- var matches = find.call(this, selector);
-
- if (typeof matches[0] !== 'undefined') {
- return matches[0];
- }
-
- return null;
- };
- }
/**
* --------------------------------------------------------------------------
@@ -263,12 +108,13 @@
delegationSelector = null;
}
- for (var _i = 0, _Object$keys = Object.keys(events); _i < _Object$keys.length; _i++) {
- var uid = _Object$keys[_i];
- var event = events[uid];
+ var uidEventList = Object.keys(events);
+
+ for (var i = 0, len = uidEventList.length; i < len; i++) {
+ var event = events[uidEventList[i]];
if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {
- return events[uid];
+ return event;
}
}
@@ -332,7 +178,7 @@
function removeHandler(element, events, typeEvent, handler, delegationSelector) {
var fn = findHandler(events[typeEvent], handler, delegationSelector);
- if (fn === null) {
+ if (!fn) {
return;
}
@@ -423,7 +269,7 @@
evt = document.createEvent('HTMLEvents');
evt.initEvent(typeEvent, bubbles, true);
} else {
- evt = createCustomEvent(event, {
+ evt = polyfill_js.createCustomEvent(event, {
bubbles: bubbles,
cancelable: true
});
@@ -443,7 +289,7 @@
if (defaultPrevented) {
evt.preventDefault();
- if (!defaultPreventedPreservedOnDispatch) {
+ if (!polyfill_js.defaultPreventedPreservedOnDispatch) {
Object.defineProperty(evt, 'defaultPrevented', {
get: function get() {
return true;
diff --git a/js/dist/dom/event-handler.js.map b/js/dist/dom/event-handler.js.map
index 8628c29975..646d1a1441 100644
--- a/js/dist/dom/event-handler.js.map
+++ b/js/dist/dom/event-handler.js.map
@@ -1 +1 @@
-{"version":3,"file":"event-handler.js","sources":["../../src/util/index.js","../../src/dom/polyfill.js","../../src/dom/event-handler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n for (const uid of Object.keys(events)) {\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 = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n"],"names":["MAX_UID","window","jQuery","getUID","prefix","Math","random","document","getElementById","Element","prototype","matches","closest","find","querySelectorAll","findOne","querySelector","createCustomEvent","eventName","params","cEvent","CustomEvent","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","workingDefaultPrevented","e","initEvent","preventDefault","defaultPrevented","origPreventDefault","Event","call","Object","defineProperty","get","configurable","defaultPreventedPreservedOnDispatch","element","createElement","addEventListener","dispatchEvent","msMatchesSelector","webkitMatchesSelector","selector","parentElement","parentNode","nodeType","scopeSelectorRegex","supportScopeQuery","error","test","hasId","Boolean","id","nodeList","replace","removeAttribute","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","uid","getEvent","fixEvent","event","which","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","domElements","target","i","length","findHandler","events","delegationSelector","keys","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","custom","isNative","indexOf","addHandler","handlers","previousFn","removeHandler","removeEventListener","removeNamespacedHandlers","namespace","storeElementEvent","forEach","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","nativeDispatch","$","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","key"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"event-handler.js","sources":["../../src/util/index.js","../../src/dom/event-handler.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { jQuery as $ } from '../util/index'\nimport { createCustomEvent, defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return uid && `${uid}::${uidEvent++}` || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ? bootstrapDelegationHandler(element, handler, delegationFn) : bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.substr(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && typeof $ !== 'undefined') {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = createCustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n"],"names":["window","jQuery","namespaceRegex","stripNameRegex","keyEventRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","element","uid","getEvent","fixEvent","event","which","test","type","charCode","keyCode","delegateTarget","bootstrapHandler","fn","handler","oneOff","EventHandler","off","apply","bootstrapDelegationHandler","selector","domElements","querySelectorAll","target","parentNode","i","length","findHandler","events","delegationSelector","uidEventList","Object","keys","len","originalHandler","normalizeParams","originalTypeEvent","delegationFn","delegation","typeEvent","replace","custom","isNative","indexOf","addHandler","handlers","previousFn","addEventListener","removeHandler","removeEventListener","Boolean","removeNamespacedHandlers","namespace","storeElementEvent","forEach","handlerKey","on","one","inNamespace","isNamespace","charAt","elementEvent","substr","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","$","Event","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","document","createEvent","initEvent","createCustomEvent","cancelable","key","defineProperty","get","preventDefault","defaultPreventedPreservedOnDispatch","dispatchEvent"],"mappings":"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"} \ No newline at end of file
diff --git a/js/dist/dom/polyfill.js b/js/dist/dom/polyfill.js
index ac86ba6ee8..91b4ce3430 100644
--- a/js/dist/dom/polyfill.js
+++ b/js/dist/dom/polyfill.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' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = global || self, global.Polyfill = factory());
-}(this, function () { 'use strict';
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
+ typeof define === 'function' && define.amd ? define(['exports'], factory) :
+ (global = global || self, factory(global.Polyfill = {}));
+}(this, function (exports) { 'use strict';
/**
* --------------------------------------------------------------------------
@@ -34,94 +34,148 @@
return prefix;
};
- /**
- * --------------------------------------------------------------------------
- * Bootstrap (v4.3.1): dom/polyfill.js
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- * --------------------------------------------------------------------------
- */
- /* istanbul ignore next */
+ /* istanbul ignore file */
+ var _Element$prototype = Element.prototype;
+ exports.matches = _Element$prototype.matches;
+ exports.closest = _Element$prototype.closest;
+ exports.find = Element.prototype.querySelectorAll;
+ exports.findOne = Element.prototype.querySelector;
- var Polyfill = function () {
- // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached
- var defaultPreventedPreservedOnDispatch = function () {
- var e = new CustomEvent('Bootstrap', {
- cancelable: true
- });
- var element = document.createElement('div');
- element.addEventListener('Bootstrap', function () {
- return null;
- });
- e.preventDefault();
- element.dispatchEvent(e);
- return e.defaultPrevented;
- }();
+ exports.createCustomEvent = function createCustomEvent(eventName, params) {
+ var cEvent = new CustomEvent(eventName, params);
+ return cEvent;
+ };
+
+ if (typeof window.CustomEvent !== 'function') {
+ exports.createCustomEvent = function createCustomEvent(eventName, params) {
+ params = params || {
+ bubbles: false,
+ cancelable: false,
+ detail: null
+ };
+ var evt = document.createEvent('CustomEvent');
+ evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail);
+ return evt;
+ };
+ }
- var find = Element.prototype.querySelectorAll;
- var findOne = Element.prototype.querySelector;
- var scopeSelectorRegex = /:scope\b/;
+ var workingDefaultPrevented = function () {
+ var e = document.createEvent('CustomEvent');
+ e.initEvent('Bootstrap', true, true);
+ e.preventDefault();
+ return e.defaultPrevented;
+ }();
- var supportScopeQuery = function () {
- var element = document.createElement('div');
+ if (!workingDefaultPrevented) {
+ var origPreventDefault = Event.prototype.preventDefault;
- try {
- element.querySelectorAll(':scope *');
- } catch (error) {
- return false;
+ Event.prototype.preventDefault = function () {
+ if (!this.cancelable) {
+ return;
}
- return true;
- }();
+ origPreventDefault.call(this);
+ Object.defineProperty(this, 'defaultPrevented', {
+ get: function get() {
+ return true;
+ },
+ configurable: true
+ });
+ };
+ } // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached
+
+
+ var defaultPreventedPreservedOnDispatch = function () {
+ var e = exports.createCustomEvent('Bootstrap', {
+ cancelable: true
+ });
+ var element = document.createElement('div');
+ element.addEventListener('Bootstrap', function () {
+ return null;
+ });
+ e.preventDefault();
+ element.dispatchEvent(e);
+ return e.defaultPrevented;
+ }();
- if (!supportScopeQuery) {
- find = function find(selector) {
- if (!scopeSelectorRegex.test(selector)) {
- return this.querySelectorAll(selector);
- }
+ if (!exports.matches) {
+ exports.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
+ }
- var hasId = Boolean(this.id);
+ if (!exports.closest) {
+ exports.closest = function closest(selector) {
+ var element = this;
- if (!hasId) {
- this.id = getUID('scope');
+ do {
+ if (exports.matches.call(element, selector)) {
+ return element;
}
- var nodeList = null;
+ element = element.parentElement || element.parentNode;
+ } while (element !== null && element.nodeType === 1);
- try {
- selector = selector.replace(scopeSelectorRegex, "#" + this.id);
- nodeList = this.querySelectorAll(selector);
- } finally {
- if (!hasId) {
- this.removeAttribute('id');
- }
- }
+ return null;
+ };
+ }
- return nodeList;
- };
+ var scopeSelectorRegex = /:scope\b/;
- findOne = function findOne(selector) {
- if (!scopeSelectorRegex.test(selector)) {
- return this.querySelector(selector);
- }
+ var supportScopeQuery = function () {
+ var element = document.createElement('div');
- var matches = find.call(this, selector);
+ try {
+ element.querySelectorAll(':scope *');
+ } catch (error) {
+ return false;
+ }
+
+ return true;
+ }();
+
+ if (!supportScopeQuery) {
+ exports.find = function find(selector) {
+ if (!scopeSelectorRegex.test(selector)) {
+ return this.querySelectorAll(selector);
+ }
+
+ var hasId = Boolean(this.id);
- if (typeof matches[0] !== 'undefined') {
- return matches[0];
+ if (!hasId) {
+ this.id = getUID('scope');
+ }
+
+ var nodeList = null;
+
+ try {
+ selector = selector.replace(scopeSelectorRegex, "#" + this.id);
+ nodeList = this.querySelectorAll(selector);
+ } finally {
+ if (!hasId) {
+ this.removeAttribute('id');
}
+ }
- return null;
- };
- }
+ return nodeList;
+ };
+
+ exports.findOne = function findOne(selector) {
+ if (!scopeSelectorRegex.test(selector)) {
+ return this.querySelector(selector);
+ }
- return {
- defaultPreventedPreservedOnDispatch: defaultPreventedPreservedOnDispatch,
- find: find,
- findOne: findOne
+ var matches = exports.find.call(this, selector);
+
+ if (typeof matches[0] !== 'undefined') {
+ return matches[0];
+ }
+
+ return null;
};
- }();
+ }
+
+ exports.defaultPreventedPreservedOnDispatch = defaultPreventedPreservedOnDispatch;
- return Polyfill;
+ Object.defineProperty(exports, '__esModule', { value: true });
}));
//# sourceMappingURL=polyfill.js.map
diff --git a/js/dist/dom/polyfill.js.map b/js/dist/dom/polyfill.js.map
index 8aea4ef1ca..e90f5e4e52 100644
--- a/js/dist/dom/polyfill.js.map
+++ b/js/dist/dom/polyfill.js.map
@@ -1 +1 @@
-{"version":3,"file":"polyfill.js","sources":["../../src/util/index.js","../../src/dom/polyfill.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/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } 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"],"names":["MAX_UID","window","jQuery","getUID","prefix","Math","random","document","getElementById","Polyfill","defaultPreventedPreservedOnDispatch","e","CustomEvent","cancelable","element","createElement","addEventListener","preventDefault","dispatchEvent","defaultPrevented","find","Element","prototype","querySelectorAll","findOne","querySelector","scopeSelectorRegex","supportScopeQuery","error","selector","test","hasId","Boolean","id","nodeList","replace","removeAttribute","matches","call"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"polyfill.js","sources":["../../src/util/index.js","../../src/dom/polyfill.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n"],"names":["MAX_UID","window","jQuery","getUID","prefix","Math","random","document","getElementById","Element","prototype","matches","closest","find","querySelectorAll","findOne","querySelector","createCustomEvent","eventName","params","cEvent","CustomEvent","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","workingDefaultPrevented","e","initEvent","preventDefault","defaultPrevented","origPreventDefault","Event","call","Object","defineProperty","get","configurable","defaultPreventedPreservedOnDispatch","element","createElement","addEventListener","dispatchEvent","msMatchesSelector","webkitMatchesSelector","selector","parentElement","parentNode","nodeType","scopeSelectorRegex","supportScopeQuery","error","test","hasId","Boolean","id","nodeList","replace","removeAttribute"],"mappings":"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"} \ No newline at end of file
diff --git a/js/dist/dom/selector-engine.js b/js/dist/dom/selector-engine.js
index 9d02332b20..afcd49e30a 100644
--- a/js/dist/dom/selector-engine.js
+++ b/js/dist/dom/selector-engine.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' ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global = global || self, global.SelectorEngine = factory());
-}(this, function () { 'use strict';
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./polyfill.js')) :
+ typeof define === 'function' && define.amd ? define(['./polyfill.js'], factory) :
+ (global = global || self, global.SelectorEngine = factory(global.Polyfill));
+}(this, function (polyfill_js) { 'use strict';
/**
* --------------------------------------------------------------------------
@@ -15,24 +15,8 @@
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* --------------------------------------------------------------------------
*/
- var MAX_UID = 1000000;
var _window = window,
jQuery = _window.jQuery; // Shoutout AngusCroll (https://goo.gl/pxwQGp)
- /**
- * --------------------------------------------------------------------------
- * Public Util Api
- * --------------------------------------------------------------------------
- */
-
-
- var getUID = function 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;
- };
var makeArray = function makeArray(nodeList) {
if (!nodeList) {
@@ -42,145 +26,6 @@
return [].slice.call(nodeList);
};
- /* istanbul ignore file */
- var _Element$prototype = Element.prototype,
- matches = _Element$prototype.matches,
- closest = _Element$prototype.closest;
- var find = Element.prototype.querySelectorAll;
- var findOne = Element.prototype.querySelector;
-
- var createCustomEvent = function createCustomEvent(eventName, params) {
- var cEvent = new CustomEvent(eventName, params);
- return cEvent;
- };
-
- if (typeof window.CustomEvent !== 'function') {
- createCustomEvent = function createCustomEvent(eventName, params) {
- params = params || {
- bubbles: false,
- cancelable: false,
- detail: null
- };
- var evt = document.createEvent('CustomEvent');
- evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail);
- return evt;
- };
- }
-
- var workingDefaultPrevented = function () {
- var e = document.createEvent('CustomEvent');
- e.initEvent('Bootstrap', true, true);
- e.preventDefault();
- return e.defaultPrevented;
- }();
-
- if (!workingDefaultPrevented) {
- var origPreventDefault = Event.prototype.preventDefault;
-
- Event.prototype.preventDefault = function () {
- if (!this.cancelable) {
- return;
- }
-
- origPreventDefault.call(this);
- Object.defineProperty(this, 'defaultPrevented', {
- get: function get() {
- return true;
- },
- configurable: true
- });
- };
- } // MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached
-
-
- var defaultPreventedPreservedOnDispatch = function () {
- var e = createCustomEvent('Bootstrap', {
- cancelable: true
- });
- var element = document.createElement('div');
- element.addEventListener('Bootstrap', function () {
- return null;
- });
- e.preventDefault();
- element.dispatchEvent(e);
- return e.defaultPrevented;
- }();
-
- if (!matches) {
- matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
- }
-
- if (!closest) {
- closest = function closest(selector) {
- var element = this;
-
- do {
- if (matches.call(element, selector)) {
- return element;
- }
-
- element = element.parentElement || element.parentNode;
- } while (element !== null && element.nodeType === 1);
-
- return null;
- };
- }
-
- var scopeSelectorRegex = /:scope\b/;
-
- var supportScopeQuery = function () {
- var 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);
- }
-
- var hasId = Boolean(this.id);
-
- if (!hasId) {
- this.id = getUID('scope');
- }
-
- var 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);
- }
-
- var matches = find.call(this, selector);
-
- if (typeof matches[0] !== 'undefined') {
- return matches[0];
- }
-
- return null;
- };
- }
-
/**
* --------------------------------------------------------------------------
* Bootstrap (v4.3.1): dom/selector-engine.js
@@ -195,10 +40,10 @@
var NODE_TEXT = 3;
var SelectorEngine = {
- matches: function matches$1(element, selector) {
- return matches.call(element, selector);
+ matches: function matches(element, selector) {
+ return polyfill_js.matches.call(element, selector);
},
- find: function find$1(selector, element) {
+ find: function find(selector, element) {
if (element === void 0) {
element = document.documentElement;
}
@@ -207,9 +52,9 @@
return null;
}
- return find.call(element, selector);
+ return polyfill_js.find.call(element, selector);
},
- findOne: function findOne$1(selector, element) {
+ findOne: function findOne(selector, element) {
if (element === void 0) {
element = document.documentElement;
}
@@ -218,7 +63,7 @@
return null;
}
- return findOne.call(element, selector);
+ return polyfill_js.findOne.call(element, selector);
},
children: function children(element, selector) {
var _this = this;
@@ -250,12 +95,12 @@
return parents;
},
- closest: function closest$1(element, selector) {
+ closest: function closest(element, selector) {
if (typeof selector !== 'string') {
return null;
}
- return closest.call(element, selector);
+ return polyfill_js.closest.call(element, selector);
},
prev: function prev(element, selector) {
if (typeof selector !== 'string') {
diff --git a/js/dist/dom/selector-engine.js.map b/js/dist/dom/selector-engine.js.map
index 8630f41ff6..a9fa28e078 100644
--- a/js/dist/dom/selector-engine.js.map
+++ b/js/dist/dom/selector-engine.js.map
@@ -1 +1 @@
-{"version":3,"file":"selector-engine.js","sources":["../../src/util/index.js","../../src/dom/polyfill.js","../../src/dom/selector-engine.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/* istanbul ignore file */\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/polyfill.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getUID } from '../util/index'\n\nlet { matches, closest } = Element.prototype\nlet find = Element.prototype.querySelectorAll\nlet findOne = Element.prototype.querySelector\nlet createCustomEvent = (eventName, params) => {\n const cEvent = new CustomEvent(eventName, params)\n\n return cEvent\n}\n\nif (typeof window.CustomEvent !== 'function') {\n createCustomEvent = (eventName, params) => {\n params = params || { bubbles: false, cancelable: false, detail: null }\n\n const evt = document.createEvent('CustomEvent')\n\n evt.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)\n return evt\n }\n}\n\nconst workingDefaultPrevented = (() => {\n const e = document.createEvent('CustomEvent')\n\n e.initEvent('Bootstrap', true, true)\n e.preventDefault()\n return e.defaultPrevented\n})()\n\nif (!workingDefaultPrevented) {\n const origPreventDefault = Event.prototype.preventDefault\n\n Event.prototype.preventDefault = function () {\n if (!this.cancelable) {\n return\n }\n\n origPreventDefault.call(this)\n Object.defineProperty(this, 'defaultPrevented', {\n get() {\n return true\n },\n configurable: true\n })\n }\n}\n\n// MSEdge resets defaultPrevented flag upon dispatchEvent call if at least one listener is attached\nconst defaultPreventedPreservedOnDispatch = (() => {\n const e = createCustomEvent('Bootstrap', {\n cancelable: true\n })\n\n const element = document.createElement('div')\n element.addEventListener('Bootstrap', () => null)\n\n e.preventDefault()\n element.dispatchEvent(e)\n return e.defaultPrevented\n})()\n\nif (!matches) {\n matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector\n}\n\nif (!closest) {\n closest = function (selector) {\n let element = this\n\n do {\n if (matches.call(element, selector)) {\n return element\n }\n\n element = element.parentElement || element.parentNode\n } while (element !== null && element.nodeType === 1)\n\n return null\n }\n}\n\nconst scopeSelectorRegex = /:scope\\b/\nconst supportScopeQuery = (() => {\n const element = document.createElement('div')\n\n try {\n element.querySelectorAll(':scope *')\n } catch (error) {\n return false\n }\n\n return true\n})()\n\nif (!supportScopeQuery) {\n find = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelectorAll(selector)\n }\n\n const hasId = Boolean(this.id)\n\n if (!hasId) {\n this.id = getUID('scope')\n }\n\n let nodeList = null\n try {\n selector = selector.replace(scopeSelectorRegex, `#${this.id}`)\n nodeList = this.querySelectorAll(selector)\n } finally {\n if (!hasId) {\n this.removeAttribute('id')\n }\n }\n\n return nodeList\n }\n\n findOne = function (selector) {\n if (!scopeSelectorRegex.test(selector)) {\n return this.querySelector(selector)\n }\n\n const matches = find.call(this, selector)\n\n if (typeof matches[0] !== 'undefined') {\n return matches[0]\n }\n\n return null\n }\n}\n\nexport {\n createCustomEvent,\n find,\n findOne,\n matches,\n closest,\n defaultPreventedPreservedOnDispatch\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n"],"names":["MAX_UID","window","jQuery","getUID","prefix","Math","random","document","getElementById","makeArray","nodeList","slice","call","Element","prototype","matches","closest","find","querySelectorAll","findOne","querySelector","createCustomEvent","eventName","params","cEvent","CustomEvent","bubbles","cancelable","detail","evt","createEvent","initCustomEvent","workingDefaultPrevented","e","initEvent","preventDefault","defaultPrevented","origPreventDefault","Event","Object","defineProperty","get","configurable","defaultPreventedPreservedOnDispatch","element","createElement","addEventListener","dispatchEvent","msMatchesSelector","webkitMatchesSelector","selector","parentElement","parentNode","nodeType","scopeSelectorRegex","supportScopeQuery","error","test","hasId","Boolean","id","replace","removeAttribute","NODE_TEXT","SelectorEngine","documentElement","findFn","children","filter","child","parents","ancestor","Node","ELEMENT_NODE","push","prev","siblings","previous","previousSibling"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"selector-engine.js","sources":["../../src/util/index.js","../../src/dom/selector-engine.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne, matches, closest } from './polyfill'\nimport { makeArray } from '../util/index'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return matches.call(element, selector)\n },\n\n find(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findFn.call(element, selector)\n },\n\n findOne(selector, element = document.documentElement) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const children = makeArray(element.children)\n\n return children.filter(child => this.matches(child, selector))\n },\n\n parents(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const parents = []\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n return closest.call(element, selector)\n },\n\n prev(element, selector) {\n if (typeof selector !== 'string') {\n return null\n }\n\n const siblings = []\n let previous = element.previousSibling\n\n while (previous && previous.nodeType === Node.ELEMENT_NODE && previous.nodeType !== NODE_TEXT) {\n if (this.matches(previous, selector)) {\n siblings.push(previous)\n }\n\n previous = previous.previousSibling\n }\n\n return siblings\n }\n}\n\nexport default SelectorEngine\n"],"names":["window","jQuery","makeArray","nodeList","slice","call","NODE_TEXT","SelectorEngine","matches","element","selector","find","document","documentElement","findFn","findOne","children","filter","child","parents","ancestor","parentNode","nodeType","Node","ELEMENT_NODE","push","closest","prev","siblings","previous","previousSibling"],"mappings":"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"} \ No newline at end of file
diff --git a/js/dist/dropdown.js b/js/dist/dropdown.js
index ad823f7c7e..4e087070cb 100644
--- a/js/dist/dropdown.js
+++ b/js/dist/dropdown.js
@@ -571,7 +571,7 @@
if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
if (event.which === ESCAPE_KEYCODE) {
- EventHandler.trigger(SelectorEngine.findOne(Selector.DATA_TOGGLE, parent), 'focus');
+ SelectorEngine.findOne(Selector.DATA_TOGGLE, parent).focus();
}
Dropdown._clearMenus();
diff --git a/js/dist/dropdown.js.map b/js/dist/dropdown.js.map
index acb260a32f..c838734f79 100644
--- a/js/dist/dropdown.js.map
+++ b/js/dist/dropdown.js.map
@@ -1 +1 @@
-{"version":3,"file":"dropdown.js","sources":["../src/util/index.js","../src/dropdown.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n 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"],"names":["window","jQuery","toType","obj","toString","call","match","toLowerCase","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","document","querySelector","error","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","noop","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK","CLICK_DATA_API","KEYDOWN_DATA_API","KEYUP_DATA_API","ClassName","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","Selector","DATA_TOGGLE","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHT","RIGHTEND","LEFT","LEFTEND","Default","offset","flip","boundary","reference","display","DefaultType","Dropdown","_element","_popper","_config","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","Data","setData","toggle","disabled","classList","contains","parent","_getParentFromElement","isActive","_clearMenus","relatedTarget","showEvent","EventHandler","trigger","defaultPrevented","Popper","TypeError","referenceElement","jquery","add","_getPopperConfig","documentElement","SelectorEngine","closest","length","body","children","elem","on","focus","setAttribute","Manipulator","toggleClass","show","hide","hideEvent","dispose","removeData","off","destroy","update","scheduleUpdate","event","preventDefault","stopPropagation","constructor","getDataAttributes","findOne","_getPlacement","parentDropdown","parentNode","placement","Boolean","_getOffset","fn","data","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","getData","_jQueryInterface","each","which","type","toggles","find","i","len","context","clickEvent","dropdownMenu","target","tagName","remove","_dataApiKeydownHandler","items","index","indexOf","_getInstance","e","$","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"dropdown.js","sources":["../src/util/index.js","../src/dropdown.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n getSelectorFromElement,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n FORM_CHILD: '.dropdown form',\n MENU: '.dropdown-menu',\n NAVBAR_NAV: '.navbar-nav',\n VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP: 'top-start',\n TOPEND: 'top-end',\n BOTTOM: 'bottom-start',\n BOTTOMEND: 'bottom-end',\n RIGHT: 'right-start',\n RIGHTEND: 'right-end',\n LEFT: 'left-start',\n LEFTEND: 'left-end'\n}\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic'\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(ClassName.POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n Manipulator.toggleClass(this._menu, ClassName.SHOW)\n Manipulator.toggleClass(parent, ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, Event.CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = SelectorEngine.findOne(Selector.MENU, parent)\n }\n }\n\n return this._menu\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n Dropdown._dropdownInterface(this, config)\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!parent.classList.contains(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) ||\n event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n parent.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n dropdownMenu.classList.remove(ClassName.SHOW)\n parent.classList.remove(ClassName.SHOW)\n EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = getSelectorFromElement(element)\n\n if (selector) {\n parent = SelectorEngine.findOne(selector)\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n SelectorEngine.closest(event.target, Selector.MENU)) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = parent.classList.contains(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n SelectorEngine.findOne(Selector.DATA_TOGGLE, parent).focus()\n }\n\n Dropdown._clearMenus()\n return\n }\n\n const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown._clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n}\n\nexport default Dropdown\n"],"names":["window","jQuery","toType","obj","toString","call","match","toLowerCase","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","document","querySelector","error","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","noop","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK","CLICK_DATA_API","KEYDOWN_DATA_API","KEYUP_DATA_API","ClassName","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","Selector","DATA_TOGGLE","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHT","RIGHTEND","LEFT","LEFTEND","Default","offset","flip","boundary","reference","display","DefaultType","Dropdown","_element","_popper","_config","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","Data","setData","toggle","disabled","classList","contains","parent","_getParentFromElement","isActive","_clearMenus","relatedTarget","showEvent","EventHandler","trigger","defaultPrevented","Popper","TypeError","referenceElement","jquery","add","_getPopperConfig","documentElement","SelectorEngine","closest","length","body","children","elem","on","focus","setAttribute","Manipulator","toggleClass","show","hide","hideEvent","dispose","removeData","off","destroy","update","scheduleUpdate","event","preventDefault","stopPropagation","constructor","getDataAttributes","findOne","_getPlacement","parentDropdown","parentNode","placement","Boolean","_getOffset","fn","data","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","_dropdownInterface","getData","_jQueryInterface","each","which","type","toggles","find","i","len","context","clickEvent","dropdownMenu","target","tagName","remove","_dataApiKeydownHandler","items","index","indexOf","_getInstance","e","$","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
diff --git a/js/dist/toast.js b/js/dist/toast.js
index fc41ab3ce8..bb31686ed4 100644
--- a/js/dist/toast.js
+++ b/js/dist/toast.js
@@ -204,7 +204,11 @@
_proto.show = function show() {
var _this = this;
- EventHandler.trigger(this._element, Event.SHOW);
+ var showEvent = EventHandler.trigger(this._element, Event.SHOW);
+
+ if (showEvent.defaultPrevented) {
+ return;
+ }
if (this._config.animation) {
this._element.classList.add(ClassName.FADE);
@@ -244,7 +248,11 @@
return;
}
- EventHandler.trigger(this._element, Event.HIDE);
+ var hideEvent = EventHandler.trigger(this._element, Event.HIDE);
+
+ if (hideEvent.defaultPrevented) {
+ return;
+ }
var complete = function complete() {
_this2._element.classList.add(ClassName.HIDE);
diff --git a/js/dist/toast.js.map b/js/dist/toast.js.map
index facb38716a..7a893cb702 100644
--- a/js/dist/toast.js.map
+++ b/js/dist/toast.js.map
@@ -1 +1 @@
-{"version":3,"file":"toast.js","sources":["../src/util/index.js","../src/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n 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._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n EventHandler.trigger(this._element, Event.HIDE)\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getTransitionDurationFromElement","element","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","document","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","NAME","VERSION","DATA_KEY","EVENT_KEY","Event","CLICK_DISMISS","HIDE","HIDDEN","SHOW","SHOWN","ClassName","FADE","SHOWING","DefaultType","animation","autohide","delay","Default","Selector","DATA_DISMISS","Toast","_element","_config","_getConfig","_timeout","_setListeners","Data","setData","show","EventHandler","trigger","classList","add","complete","remove","hide","one","contains","dispose","clearTimeout","off","removeData","Manipulator","getDataAttributes","constructor","on","_jQueryInterface","each","data","getData","TypeError","_getInstance","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"toast.js","sources":["../src/util/index.js","../src/toast.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst Event = {\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n HIDE: 'hide',\n SHOW: 'show',\n SHOWING: 'showing'\n}\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst Selector = {\n DATA_DISMISS: '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = EventHandler.trigger(this._element, Event.SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n EventHandler.trigger(this._element, Event.SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, Event.HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n EventHandler.trigger(this._element, Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n EventHandler.off(this._element, Event.CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast._jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n }\n}\n\nexport default Toast\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getTransitionDurationFromElement","element","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","document","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","NAME","VERSION","DATA_KEY","EVENT_KEY","Event","CLICK_DISMISS","HIDE","HIDDEN","SHOW","SHOWN","ClassName","FADE","SHOWING","DefaultType","animation","autohide","delay","Default","Selector","DATA_DISMISS","Toast","_element","_config","_getConfig","_timeout","_setListeners","Data","setData","show","showEvent","EventHandler","trigger","defaultPrevented","classList","add","complete","remove","hide","one","contains","hideEvent","dispose","clearTimeout","off","removeData","Manipulator","getDataAttributes","constructor","on","_jQueryInterface","each","data","getData","TypeError","_getInstance","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
diff --git a/js/dist/tooltip.js b/js/dist/tooltip.js
index c4fed4ae96..e8efaf7131 100644
--- a/js/dist/tooltip.js
+++ b/js/dist/tooltip.js
@@ -391,8 +391,7 @@
SHOW: 'show'
};
var Selector = {
- TOOLTIP_INNER: '.tooltip-inner',
- TOOLTIP_ARROW: '.tooltip-arrow'
+ TOOLTIP_INNER: '.tooltip-inner'
};
var Trigger = {
HOVER: 'hover',
@@ -487,7 +486,7 @@
clearTimeout(this._timeout);
Data.removeData(this.element, this.constructor.DATA_KEY);
EventHandler.off(this.element, this.constructor.EVENT_KEY);
- EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal');
+ EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', this._hideModalHandler);
if (this.tip) {
this.tip.parentNode.removeChild(this.tip);
@@ -557,7 +556,7 @@
behavior: this.config.fallbackPlacement
},
arrow: {
- element: Selector.TOOLTIP_ARROW
+ element: "." + this.constructor.NAME + "-arrow"
},
preventOverflow: {
boundariesElement: this.config.boundary
@@ -793,11 +792,14 @@
});
}
});
- EventHandler.on(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', function () {
+
+ this._hideModalHandler = function () {
if (_this4.element) {
_this4.hide();
}
- });
+ };
+
+ EventHandler.on(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', this._hideModalHandler);
if (this.config.selector) {
this.config = _objectSpread({}, this.config, {
diff --git a/js/dist/tooltip.js.map b/js/dist/tooltip.js.map
index 75c380a2e7..f99080dbc5 100644
--- a/js/dist/tooltip.js.map
+++ b/js/dist/tooltip.js.map
@@ -1 +1 @@
-{"version":3,"file":"tooltip.js","sources":["../src/util/index.js","../src/util/sanitizer.js","../src/tooltip.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner',\n 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"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getTransitionDurationFromElement","element","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","noop","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","indexOf","Boolean","nodeValue","regExp","filter","attrRegex","i","l","length","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","body","querySelectorAll","len","el","elName","removeChild","attributeList","attributes","whitelistedAttributes","concat","removeAttribute","innerHTML","NAME","VERSION","DATA_KEY","EVENT_KEY","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","DefaultType","animation","template","title","trigger","delay","html","selector","placement","offset","container","fallbackPlacement","boundary","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default","HoverState","SHOW","OUT","Event","HIDE","HIDDEN","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","ClassName","FADE","Selector","TOOLTIP_INNER","TOOLTIP_ARROW","Trigger","HOVER","FOCUS","MANUAL","Tooltip","Popper","TypeError","_isEnabled","_timeout","_hoverState","_activeTrigger","_popper","_getConfig","tip","_setListeners","Data","setData","constructor","enable","disable","toggleEnabled","toggle","event","dataKey","context","getData","delegateTarget","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","classList","contains","dispose","clearTimeout","removeData","EventHandler","off","SelectorEngine","closest","destroy","show","style","display","isWithContent","showEvent","shadowRoot","isInTheDom","ownerDocument","defaultPrevented","tipId","setAttribute","setContent","add","attachment","_getAttachment","addAttachmentClass","_getContainer","appendChild","modifiers","_getOffset","flip","behavior","arrow","preventOverflow","boundariesElement","onCreate","data","originalPlacement","_handlePopperPlacementChange","onUpdate","children","on","complete","_fixTransition","prevHoverState","one","hide","callback","_cleanTipClass","hideEvent","remove","update","scheduleUpdate","getTitle","createElement","setElementContent","findOne","content","jquery","innerText","textContent","getAttribute","fn","offsets","triggers","eventIn","eventOut","_fixTitle","titleType","type","dataAttributes","Manipulator","getDataAttributes","dataAttr","key","tabClass","map","token","trim","tClass","popperData","popperInstance","instance","popper","initConfigAnimation","_jQueryInterface","each","_config","_getInstance","$","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"tooltip.js","sources":["../src/util/index.js","../src/util/sanitizer.js","../src/tooltip.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\nconst { jQuery } = window\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelectorFromElement = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (error) {\n return null\n }\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n const evt = document.createEvent('HTMLEvents')\n\n evt.initEvent(TRANSITION_END, true, true)\n element.dispatchEvent(evt)\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst makeArray = nodeList => {\n if (!nodeList) {\n return []\n }\n\n return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n return element.style.display !== 'none' &&\n element.parentNode.style.display !== 'none' &&\n element.style.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\n// eslint-disable-next-line no-empty-function\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nexport {\n jQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n makeArray,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { makeArray } from './index'\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = makeArray(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = makeArray(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n jQuery as $,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n makeArray,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW: 'show',\n OUT: 'out'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n}\n\nconst Selector = {\n TOOLTIP_INNER: '.tooltip-inner'\n}\n\nconst Trigger = {\n HOVER: 'hover',\n FOCUS: 'focus',\n CLICK: 'click',\n MANUAL: 'manual'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, '.modal'), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n })\n\n tip.classList.add(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n makeArray(document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (this.tip.classList.contains(ClassName.FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(Selector.TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(ClassName.FADE)\n tip.classList.remove(ClassName.SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n EventHandler.on(SelectorEngine.closest(this.element, '.modal'),\n 'hide.bs.modal',\n this._hideModalHandler\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n tabClass\n .map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static _getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n\nif (typeof $ !== 'undefined') {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n}\n\nexport default Tooltip\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","window","jQuery","toType","obj","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getTransitionDurationFromElement","element","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","evt","createEvent","initEvent","dispatchEvent","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","noop","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","indexOf","Boolean","nodeValue","regExp","filter","attrRegex","i","l","length","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","body","querySelectorAll","len","el","elName","removeChild","attributeList","attributes","whitelistedAttributes","concat","removeAttribute","innerHTML","NAME","VERSION","DATA_KEY","EVENT_KEY","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","DefaultType","animation","template","title","trigger","delay","html","selector","placement","offset","container","fallbackPlacement","boundary","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default","HoverState","SHOW","OUT","Event","HIDE","HIDDEN","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","ClassName","FADE","Selector","TOOLTIP_INNER","Trigger","HOVER","FOCUS","MANUAL","Tooltip","Popper","TypeError","_isEnabled","_timeout","_hoverState","_activeTrigger","_popper","_getConfig","tip","_setListeners","Data","setData","constructor","enable","disable","toggleEnabled","toggle","event","dataKey","context","getData","delegateTarget","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","classList","contains","dispose","clearTimeout","removeData","EventHandler","off","SelectorEngine","closest","_hideModalHandler","destroy","show","style","display","isWithContent","showEvent","shadowRoot","isInTheDom","ownerDocument","defaultPrevented","tipId","setAttribute","setContent","add","attachment","_getAttachment","addAttachmentClass","_getContainer","appendChild","modifiers","_getOffset","flip","behavior","arrow","preventOverflow","boundariesElement","onCreate","data","originalPlacement","_handlePopperPlacementChange","onUpdate","children","on","complete","_fixTransition","prevHoverState","one","hide","callback","_cleanTipClass","hideEvent","remove","update","scheduleUpdate","getTitle","createElement","setElementContent","findOne","content","jquery","innerText","textContent","getAttribute","fn","offsets","triggers","eventIn","eventOut","_fixTitle","titleType","type","dataAttributes","Manipulator","getDataAttributes","dataAttr","key","tabClass","map","token","trim","tClass","popperData","popperInstance","instance","popper","initConfigAnimation","_jQueryInterface","each","_config","_getInstance","$","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file