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
diff options
context:
space:
mode:
authorXhmikosR <xhmikosr@gmail.com>2020-05-13 21:53:43 +0300
committerGitHub <noreply@github.com>2020-05-13 21:53:43 +0300
commitde7af5ee0738d08ef2d6702654834beb5bfce35e (patch)
tree371b751a7f96f96399e53d1767b8f0c4610cb268 /js
parent53eb7d38830f1e7c593069c8f5b40f4127563317 (diff)
Dist (#30694)
Diffstat (limited to 'js')
-rw-r--r--js/dist/alert.js17
-rw-r--r--js/dist/alert.js.map2
-rw-r--r--js/dist/button.js15
-rw-r--r--js/dist/button.js.map2
-rw-r--r--js/dist/carousel.js29
-rw-r--r--js/dist/carousel.js.map2
-rw-r--r--js/dist/collapse.js14
-rw-r--r--js/dist/collapse.js.map2
-rw-r--r--js/dist/dom/data.js.map2
-rw-r--r--js/dist/dom/event-handler.js14
-rw-r--r--js/dist/dom/event-handler.js.map2
-rw-r--r--js/dist/dom/manipulator.js.map2
-rw-r--r--js/dist/dom/selector-engine.js3
-rw-r--r--js/dist/dom/selector-engine.js.map2
-rw-r--r--js/dist/dropdown.js51
-rw-r--r--js/dist/dropdown.js.map2
-rw-r--r--js/dist/modal.js22
-rw-r--r--js/dist/modal.js.map2
-rw-r--r--js/dist/popover.js7
-rw-r--r--js/dist/popover.js.map2
-rw-r--r--js/dist/scrollspy.js10
-rw-r--r--js/dist/scrollspy.js.map2
-rw-r--r--js/dist/tab.js5
-rw-r--r--js/dist/tab.js.map2
-rw-r--r--js/dist/toast.js2
-rw-r--r--js/dist/toast.js.map2
-rw-r--r--js/dist/tooltip.js37
-rw-r--r--js/dist/tooltip.js.map2
28 files changed, 105 insertions, 151 deletions
diff --git a/js/dist/alert.js b/js/dist/alert.js
index 7bc4bef2fb..8937d01c1e 100644
--- a/js/dist/alert.js
+++ b/js/dist/alert.js
@@ -4,14 +4,13 @@
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
(function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js'), require('./dom/selector-engine.js')) :
- typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js', './dom/selector-engine.js'], factory) :
- (global = global || self, global.Alert = factory(global.Data, global.EventHandler, global.SelectorEngine));
-}(this, (function (Data, EventHandler, SelectorEngine) { 'use strict';
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('./dom/data.js'), require('./dom/event-handler.js')) :
+ typeof define === 'function' && define.amd ? define(['./dom/data.js', './dom/event-handler.js'], factory) :
+ (global = global || self, global.Alert = factory(global.Data, global.EventHandler));
+}(this, (function (Data, EventHandler) { 'use strict';
Data = Data && Object.prototype.hasOwnProperty.call(Data, 'default') ? Data['default'] : Data;
EventHandler = EventHandler && Object.prototype.hasOwnProperty.call(EventHandler, 'default') ? EventHandler['default'] : EventHandler;
- SelectorEngine = SelectorEngine && Object.prototype.hasOwnProperty.call(SelectorEngine, 'default') ? SelectorEngine['default'] : SelectorEngine;
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
@@ -170,13 +169,7 @@
;
_proto._getRootElement = function _getRootElement(element) {
- var parent = getElementFromSelector(element);
-
- if (!parent) {
- parent = SelectorEngine.closest(element, "." + CLASSNAME_ALERT);
- }
-
- return parent;
+ return getElementFromSelector(element) || element.closest("." + CLASSNAME_ALERT);
};
_proto._triggerCloseEvent = function _triggerCloseEvent(element) {
diff --git a/js/dist/alert.js.map b/js/dist/alert.js.map
index c520f6d262..08beb9d5ae 100644
--- a/js/dist/alert.js.map
+++ b/js/dist/alert.js.map
@@ -1 +1 @@
-{"version":3,"file":"alert.js","sources":["../src/util/index.js","../src/alert.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n let parent = getElementFromSelector(element)\n\n if (!parent) {\n parent = SelectorEngine.closest(element, `.${CLASSNAME_ALERT}`)\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, EVENT_CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(CLASSNAME_SHOW)\n\n if (!element.classList.contains(CLASSNAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, EVENT_CLOSED)\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()))\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert.jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert.jQueryInterface\n }\n}\n\nexport default Alert\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","getSelector","element","selector","getAttribute","hrefAttr","trim","getElementFromSelector","document","querySelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","getjQuery","jQuery","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASSNAME_ALERT","CLASSNAME_FADE","CLASSNAME_SHOW","Alert","_element","Data","setData","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","defaultPrevented","_removeElement","dispose","removeData","parent","SelectorEngine","closest","EventHandler","trigger","classList","remove","contains","_destroyElement","one","parentNode","removeChild","jQueryInterface","config","each","data","getData","handleDismiss","alertInstance","event","preventDefault","getInstance","on","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"alert.js","sources":["../src/util/index.js","../src/alert.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASSNAME_ALERT = 'alert'\nconst CLASSNAME_FADE = 'fade'\nconst CLASSNAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n\n if (this._element) {\n Data.setData(element, DATA_KEY, this)\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent === null || customEvent.defaultPrevented) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n return getElementFromSelector(element) || element.closest(`.${CLASSNAME_ALERT}`)\n }\n\n _triggerCloseEvent(element) {\n return EventHandler.trigger(element, EVENT_CLOSE)\n }\n\n _removeElement(element) {\n element.classList.remove(CLASSNAME_SHOW)\n\n if (!element.classList.contains(CLASSNAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = getTransitionDurationFromElement(element)\n\n EventHandler\n .one(element, TRANSITION_END, () => this._destroyElement(element))\n emulateTransitionEnd(element, transitionDuration)\n }\n\n _destroyElement(element) {\n if (element.parentNode) {\n element.parentNode.removeChild(element)\n }\n\n EventHandler.trigger(element, EVENT_CLOSED)\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\nEventHandler\n .on(document, EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert.handleDismiss(new Alert()))\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .alert to jQuery only if jQuery is present\n */\n\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Alert.jQueryInterface\n $.fn[NAME].Constructor = Alert\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert.jQueryInterface\n }\n}\n\nexport default Alert\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","getSelector","element","selector","getAttribute","hrefAttr","trim","getElementFromSelector","document","querySelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","getjQuery","jQuery","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","SELECTOR_DISMISS","EVENT_CLOSE","EVENT_CLOSED","EVENT_CLICK_DATA_API","CLASSNAME_ALERT","CLASSNAME_FADE","CLASSNAME_SHOW","Alert","_element","Data","setData","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","defaultPrevented","_removeElement","dispose","removeData","closest","EventHandler","trigger","classList","remove","contains","_destroyElement","one","parentNode","removeChild","jQueryInterface","config","each","data","getData","handleDismiss","alertInstance","event","preventDefault","getInstance","on","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
diff --git a/js/dist/button.js b/js/dist/button.js
index 62e2d8d370..a77a4a8392 100644
--- a/js/dist/button.js
+++ b/js/dist/button.js
@@ -59,7 +59,6 @@
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
var CLASS_NAME_ACTIVE = 'active';
- var CLASS_NAME_BUTTON = 'btn';
var CLASS_NAME_DISABLED = 'disabled';
var CLASS_NAME_FOCUS = 'focus';
var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^="button"]';
@@ -89,7 +88,8 @@
_proto.toggle = function toggle() {
var triggerChangeEvent = true;
var addAriaPressed = true;
- var rootElement = SelectorEngine.closest(this._element, SELECTOR_DATA_TOGGLE);
+
+ var rootElement = this._element.closest(SELECTOR_DATA_TOGGLE);
if (rootElement) {
var input = SelectorEngine.findOne(SELECTOR_INPUT, this._element);
@@ -170,12 +170,7 @@
EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
event.preventDefault();
- var button = event.target;
-
- if (!button.classList.contains(CLASS_NAME_BUTTON)) {
- button = SelectorEngine.closest(button, SELECTOR_BUTTON);
- }
-
+ var button = event.target.closest(SELECTOR_BUTTON);
var data = Data.getData(button, DATA_KEY);
if (!data) {
@@ -185,14 +180,14 @@
data.toggle();
});
EventHandler.on(document, EVENT_FOCUS_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
- var button = SelectorEngine.closest(event.target, SELECTOR_BUTTON);
+ var button = event.target.closest(SELECTOR_BUTTON);
if (button) {
button.classList.add(CLASS_NAME_FOCUS);
}
});
EventHandler.on(document, EVENT_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {
- var button = SelectorEngine.closest(event.target, SELECTOR_BUTTON);
+ var button = event.target.closest(SELECTOR_BUTTON);
if (button) {
button.classList.remove(CLASS_NAME_FOCUS);
diff --git a/js/dist/button.js.map b/js/dist/button.js.map
index 109864811e..73e6c1f6b7 100644
--- a/js/dist/button.js.map
+++ b/js/dist/button.js.map
@@ -1 +1 @@
-{"version":3,"file":"button.js","sources":["../src/util/index.js","../src/button.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"buttons\"]'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_BLUR_DATA_API = `blur${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = SelectorEngine.closest(\n this._element,\n SELECTOR_DATA_TOGGLE\n )\n\n if (rootElement) {\n const input = SelectorEngine.findOne(SELECTOR_INPUT, this._element)\n\n if (input && input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains(CLASS_NAME_DISABLED) ||\n rootElement.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(CLASS_NAME_ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n let button = event.target\n if (!button.classList.contains(CLASS_NAME_BUTTON)) {\n button = SelectorEngine.closest(button, SELECTOR_BUTTON)\n }\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, EVENT_FOCUS_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, SELECTOR_BUTTON)\n\n if (button) {\n button.classList.add(CLASS_NAME_FOCUS)\n }\n})\n\nEventHandler.on(document, EVENT_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = SelectorEngine.closest(event.target, SELECTOR_BUTTON)\n\n if (button) {\n button.classList.remove(CLASS_NAME_FOCUS)\n }\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button.jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button.jQueryInterface\n }\n}\n\nexport default Button\n"],"names":["getjQuery","window","jQuery","document","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","CLASS_NAME_ACTIVE","CLASS_NAME_BUTTON","CLASS_NAME_DISABLED","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLE","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_CLICK_DATA_API","EVENT_FOCUS_DATA_API","EVENT_BLUR_DATA_API","Button","element","_element","Data","setData","toggle","triggerChangeEvent","addAriaPressed","rootElement","SelectorEngine","closest","input","findOne","type","checked","classList","contains","activeElement","remove","EventHandler","trigger","focus","setAttribute","dispose","removeData","jQueryInterface","config","each","data","getData","getInstance","on","event","preventDefault","button","target","add","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"button.js","sources":["../src/util/index.js","../src/button.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"buttons\"]'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_BLUR_DATA_API = `blur${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n\n const rootElement = this._element.closest(SELECTOR_DATA_TOGGLE)\n\n if (rootElement) {\n const input = SelectorEngine.findOne(SELECTOR_INPUT, this._element)\n\n if (input && input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE, rootElement)\n\n if (activeElement) {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains(CLASS_NAME_DISABLED) ||\n rootElement.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n EventHandler.trigger(input, 'change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n this._element.classList.toggle(CLASS_NAME_ACTIVE)\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n event.preventDefault()\n\n const button = event.target.closest(SELECTOR_BUTTON)\n\n let data = Data.getData(button, DATA_KEY)\n if (!data) {\n data = new Button(button)\n }\n\n data.toggle()\n})\n\nEventHandler.on(document, EVENT_FOCUS_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = event.target.closest(SELECTOR_BUTTON)\n\n if (button) {\n button.classList.add(CLASS_NAME_FOCUS)\n }\n})\n\nEventHandler.on(document, EVENT_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, event => {\n const button = event.target.closest(SELECTOR_BUTTON)\n\n if (button) {\n button.classList.remove(CLASS_NAME_FOCUS)\n }\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .button to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Button.jQueryInterface\n $.fn[NAME].Constructor = Button\n\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button.jQueryInterface\n }\n}\n\nexport default Button\n"],"names":["getjQuery","window","jQuery","document","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","CLASS_NAME_ACTIVE","CLASS_NAME_DISABLED","CLASS_NAME_FOCUS","SELECTOR_DATA_TOGGLE_CARROT","SELECTOR_DATA_TOGGLE","SELECTOR_INPUT","SELECTOR_ACTIVE","SELECTOR_BUTTON","EVENT_CLICK_DATA_API","EVENT_FOCUS_DATA_API","EVENT_BLUR_DATA_API","Button","element","_element","Data","setData","toggle","triggerChangeEvent","addAriaPressed","rootElement","closest","input","SelectorEngine","findOne","type","checked","classList","contains","activeElement","remove","EventHandler","trigger","focus","setAttribute","dispose","removeData","jQueryInterface","config","each","data","getData","getInstance","on","event","preventDefault","button","target","add","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
diff --git a/js/dist/carousel.js b/js/dist/carousel.js
index 70b4d86bec..2c57158d82 100644
--- a/js/dist/carousel.js
+++ b/js/dist/carousel.js
@@ -213,10 +213,8 @@
var DATA_KEY = 'bs.carousel';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
- var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key
-
- var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key
-
+ var ARROW_LEFT_KEY = 'ArrowLeft';
+ var ARROW_RIGHT_KEY = 'ArrowRight';
var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch
var SWIPE_THRESHOLD = 40;
@@ -293,7 +291,7 @@
this._element = element;
this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element);
this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0;
- this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent);
+ this._pointerEvent = Boolean(window.PointerEvent);
this._addEventListeners();
@@ -397,7 +395,7 @@
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default, {}, config);
+ config = _objectSpread2(_objectSpread2({}, Default), config);
typeCheckConfig(NAME, config, DefaultType);
return config;
};
@@ -525,13 +523,13 @@
return;
}
- switch (event.which) {
- case ARROW_LEFT_KEYCODE:
+ switch (event.key) {
+ case ARROW_LEFT_KEY:
event.preventDefault();
this.prev();
break;
- case ARROW_RIGHT_KEYCODE:
+ case ARROW_RIGHT_KEY:
event.preventDefault();
this.next();
break;
@@ -656,12 +654,9 @@
var transitionDuration = getTransitionDurationFromElement(activeElement);
EventHandler.one(activeElement, TRANSITION_END, function () {
- nextElement.classList.remove(directionalClassName);
- nextElement.classList.remove(orderClassName);
+ nextElement.classList.remove(directionalClassName, orderClassName);
nextElement.classList.add(CLASS_NAME_ACTIVE);
- activeElement.classList.remove(CLASS_NAME_ACTIVE);
- activeElement.classList.remove(orderClassName);
- activeElement.classList.remove(directionalClassName);
+ activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName);
_this4._isSliding = false;
setTimeout(function () {
EventHandler.trigger(_this4._element, EVENT_SLID, {
@@ -694,10 +689,10 @@
Carousel.carouselInterface = function carouselInterface(element, config) {
var data = Data.getData(element, DATA_KEY);
- var _config = _objectSpread2({}, Default, {}, Manipulator.getDataAttributes(element));
+ var _config = _objectSpread2(_objectSpread2({}, Default), Manipulator.getDataAttributes(element));
if (typeof config === 'object') {
- _config = _objectSpread2({}, _config, {}, config);
+ _config = _objectSpread2(_objectSpread2({}, _config), config);
}
var action = typeof config === 'string' ? config : _config.slide;
@@ -733,7 +728,7 @@
return;
}
- var config = _objectSpread2({}, Manipulator.getDataAttributes(target), {}, Manipulator.getDataAttributes(this));
+ var config = _objectSpread2(_objectSpread2({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this));
var slideIndex = this.getAttribute('data-slide-to');
diff --git a/js/dist/carousel.js.map b/js/dist/carousel.js.map
index 33ea662f8c..1720b0c1ff 100644
--- a/js/dist/carousel.js.map
+++ b/js/dist/carousel.js.map
@@ -1 +1 @@
-{"version":3,"file":"carousel.js","sources":["../src/util/index.js","../src/carousel.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, EVENT_MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = (isPrevDirection && activeIndex === 0) ||\n (isNextDirection && activeIndex === lastItemIndex)\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(SELECTOR_ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || (activeElement &&\n this._getItemByDirection(direction, activeElement))\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName)\n nextElement.classList.remove(orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n activeElement.classList.remove(orderClassName)\n activeElement.classList.remove(directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel.jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel.jQueryInterface\n }\n}\n\nexport default Carousel\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","trim","getElementFromSelector","document","querySelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API","EVENT_CLICK_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_element","_indicatorsElement","SelectorEngine","findOne","_touchSupported","documentElement","navigator","maxTouchPoints","_pointerEvent","Boolean","PointerEvent","MSPointerEvent","_addEventListeners","Data","setData","next","_slide","nextWhenVisible","hidden","prev","event","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","EventHandler","one","direction","dispose","off","removeData","_handleSwipe","absDeltax","Math","abs","on","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","find","itemImg","e","preventDefault","classList","add","target","tagName","which","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","trigger","from","_setActiveIndicatorElement","indicators","i","remove","nextIndicator","children","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","contains","slideEvent","defaultPrevented","nextElementInterval","parseInt","defaultInterval","carouselInterface","data","getData","Manipulator","getDataAttributes","action","TypeError","ride","jQueryInterface","each","dataApiClickHandler","slideIndex","getInstance","carousels","len","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"carousel.js","sources":["../src/util/index.js","../src/carousel.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n reflow,\n triggerTransitionEnd,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ARROW_LEFT_KEY = 'ArrowLeft'\nconst ARROW_RIGHT_KEY = 'ArrowRight'\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n}\n\nconst DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = SelectorEngine.findOne(SELECTOR_INDICATORS, this._element)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent)\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden && isVisible(this._element)) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (SelectorEngine.findOne(SELECTOR_NEXT_PREV, this._element)) {\n triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config && this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n EventHandler.one(this._element, EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex ?\n DIRECTION_NEXT :\n DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n EventHandler.off(this._element, EVENT_KEY)\n Data.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n EventHandler\n .on(this._element, EVENT_KEYDOWN, event => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n EventHandler\n .on(this._element, EVENT_MOUSEENTER, event => this.pause(event))\n EventHandler\n .on(this._element, EVENT_MOUSELEAVE, event => this.cycle(event))\n }\n\n if (this._config.touch && this._touchSupported) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n const start = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchStartX = event.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.touches[0].clientX\n }\n }\n\n const move = event => {\n // ensure swiping with one touch and not pinching\n if (event.touches && event.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = event => {\n if (this._pointerEvent && PointerType[event.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n\n this.touchTimeout = setTimeout(event => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n SelectorEngine.find(SELECTOR_ITEM_IMG, this._element).forEach(itemImg => {\n EventHandler.on(itemImg, EVENT_DRAG_START, e => e.preventDefault())\n })\n\n if (this._pointerEvent) {\n EventHandler.on(this._element, EVENT_POINTERDOWN, event => start(event))\n EventHandler.on(this._element, EVENT_POINTERUP, event => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n EventHandler.on(this._element, EVENT_TOUCHSTART, event => start(event))\n EventHandler.on(this._element, EVENT_TOUCHMOVE, event => move(event))\n EventHandler.on(this._element, EVENT_TOUCHEND, event => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.key) {\n case ARROW_LEFT_KEY:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEY:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode ?\n SelectorEngine.find(SELECTOR_ITEM, element.parentNode) :\n []\n\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = (isPrevDirection && activeIndex === 0) ||\n (isNextDirection && activeIndex === lastItemIndex)\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] :\n this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element))\n\n return EventHandler.trigger(this._element, EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = SelectorEngine.find(SELECTOR_ACTIVE, this._indicatorsElement)\n for (let i = 0; i < indicators.length; i++) {\n indicators[i].classList.remove(CLASS_NAME_ACTIVE)\n }\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n nextIndicator.classList.add(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || (activeElement &&\n this._getItemByDirection(direction, activeElement))\n\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && nextElement.classList.contains(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.defaultPrevented) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n if (this._element.classList.contains(CLASS_NAME_SLIDE)) {\n nextElement.classList.add(orderClassName)\n\n reflow(nextElement)\n\n activeElement.classList.add(directionalClassName)\n nextElement.classList.add(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = getTransitionDurationFromElement(activeElement)\n\n EventHandler\n .one(activeElement, TRANSITION_END, () => {\n nextElement.classList.remove(directionalClassName, orderClassName)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n activeElement.classList.remove(CLASS_NAME_ACTIVE, orderClassName, directionalClassName)\n\n this._isSliding = false\n\n setTimeout(() => {\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }, 0)\n })\n\n emulateTransitionEnd(activeElement, transitionDuration)\n } else {\n activeElement.classList.remove(CLASS_NAME_ACTIVE)\n nextElement.classList.add(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n EventHandler.trigger(this._element, EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static carouselInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n let _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element)\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(element, _config)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Carousel.carouselInterface(this, config)\n })\n }\n\n static dataApiClickHandler(event) {\n const target = getElementFromSelector(this)\n\n if (!target || !target.classList.contains(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel.carouselInterface(target, config)\n\n if (slideIndex) {\n Data.getData(target, DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler\n .on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel.dataApiClickHandler)\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n const carousels = SelectorEngine.find(SELECTOR_DATA_RIDE)\n\n for (let i = 0, len = carousels.length; i < len; i++) {\n Carousel.carouselInterface(carousels[i], Data.getData(carousels[i], DATA_KEY))\n }\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .carousel to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Carousel.jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel.jQueryInterface\n }\n}\n\nexport default Carousel\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","trim","getElementFromSelector","document","querySelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","ARROW_LEFT_KEY","ARROW_RIGHT_KEY","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","DIRECTION_NEXT","DIRECTION_PREV","DIRECTION_LEFT","DIRECTION_RIGHT","EVENT_SLIDE","EVENT_SLID","EVENT_KEYDOWN","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","EVENT_TOUCHSTART","EVENT_TOUCHMOVE","EVENT_TOUCHEND","EVENT_POINTERDOWN","EVENT_POINTERUP","EVENT_DRAG_START","EVENT_LOAD_DATA_API","EVENT_CLICK_DATA_API","CLASS_NAME_CAROUSEL","CLASS_NAME_ACTIVE","CLASS_NAME_SLIDE","CLASS_NAME_RIGHT","CLASS_NAME_LEFT","CLASS_NAME_NEXT","CLASS_NAME_PREV","CLASS_NAME_POINTER_EVENT","SELECTOR_ACTIVE","SELECTOR_ACTIVE_ITEM","SELECTOR_ITEM","SELECTOR_ITEM_IMG","SELECTOR_NEXT_PREV","SELECTOR_INDICATORS","SELECTOR_DATA_SLIDE","SELECTOR_DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_element","_indicatorsElement","SelectorEngine","findOne","_touchSupported","documentElement","navigator","maxTouchPoints","_pointerEvent","Boolean","PointerEvent","_addEventListeners","Data","setData","next","_slide","nextWhenVisible","hidden","prev","event","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","EventHandler","one","direction","dispose","off","removeData","_handleSwipe","absDeltax","Math","abs","on","_keydown","_addTouchEventListeners","start","pointerType","clientX","touches","move","end","clearTimeout","find","itemImg","e","preventDefault","classList","add","target","tagName","key","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","trigger","from","_setActiveIndicatorElement","indicators","i","remove","nextIndicator","children","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","contains","slideEvent","defaultPrevented","nextElementInterval","parseInt","defaultInterval","carouselInterface","data","getData","Manipulator","getDataAttributes","action","TypeError","ride","jQueryInterface","each","dataApiClickHandler","slideIndex","getInstance","carousels","len","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
diff --git a/js/dist/collapse.js b/js/dist/collapse.js
index 1620280e58..b3b47259d9 100644
--- a/js/dist/collapse.js
+++ b/js/dist/collapse.js
@@ -358,9 +358,7 @@
var complete = function complete() {
_this._element.classList.remove(CLASS_NAME_COLLAPSING);
- _this._element.classList.add(CLASS_NAME_COLLAPSE);
-
- _this._element.classList.add(CLASS_NAME_SHOW);
+ _this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
_this._element.style[dimension] = '';
@@ -397,9 +395,7 @@
this._element.classList.add(CLASS_NAME_COLLAPSING);
- this._element.classList.remove(CLASS_NAME_COLLAPSE);
-
- this._element.classList.remove(CLASS_NAME_SHOW);
+ this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW);
var triggerArrayLength = this._triggerArray.length;
@@ -448,7 +444,7 @@
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default, {}, config);
+ config = _objectSpread2(_objectSpread2({}, Default), config);
config.toggle = Boolean(config.toggle); // Coerce string values
typeCheckConfig(NAME, config, DefaultType);
@@ -506,9 +502,9 @@
Collapse.collapseInterface = function collapseInterface(element, config) {
var data = Data.getData(element, DATA_KEY);
- var _config = _objectSpread2({}, Default, {}, Manipulator.getDataAttributes(element), {}, typeof config === 'object' && config ? config : {});
+ var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default), Manipulator.getDataAttributes(element)), typeof config === 'object' && config ? config : {});
- if (!data && _config.toggle && /show|hide/.test(config)) {
+ if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {
_config.toggle = false;
}
diff --git a/js/dist/collapse.js.map b/js/dist/collapse.js.map
index 6e0625d153..551e1e83c9 100644
--- a/js/dist/collapse.js.map
+++ b/js/dist/collapse.js.map
@@ -1 +1 @@
-{"version":3,"file":"collapse.js","sources":["../src/util/index.js","../src/collapse.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent)\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(WIDTH)\n return hasWidth ? WIDTH : HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `${SELECTOR_DATA_TOGGLE}[data-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config)\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = SelectorEngine.find(selector)\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse.collapseInterface(element, config)\n })\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse.jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse.jQueryInterface\n }\n}\n\nexport default Collapse\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","document","querySelector","getElementFromSelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Default","toggle","parent","DefaultType","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_CLICK_DATA_API","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_ACTIVES","SELECTOR_DATA_TOGGLE","Collapse","_isTransitioning","_element","_config","_getConfig","_triggerArray","SelectorEngine","find","id","toggleList","i","len","length","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","Data","setData","classList","contains","hide","show","actives","activesData","container","findOne","tempActiveData","getData","startEvent","EventHandler","trigger","defaultPrevented","elemActive","collapseInterface","dimension","_getDimension","remove","add","style","setAttribute","setTransitioning","complete","capitalizedDimension","slice","scrollSize","one","getBoundingClientRect","triggerArrayLength","isTransitioning","dispose","removeData","Boolean","hasWidth","jquery","selected","triggerArray","isOpen","data","Manipulator","getDataAttributes","TypeError","jQueryInterface","each","getInstance","on","event","target","tagName","preventDefault","triggerData","selectorElements","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"collapse.js","sources":["../src/util/index.js","../src/collapse.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n toggle: true,\n parent: ''\n}\n\nconst DefaultType = {\n toggle: 'boolean',\n parent: '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst WIDTH = 'width'\nconst HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = SelectorEngine.find(\n `${SELECTOR_DATA_TOGGLE}[href=\"#${element.id}\"],` +\n `${SELECTOR_DATA_TOGGLE}[data-target=\"#${element.id}\"]`\n )\n\n const toggleList = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = getSelectorFromElement(elem)\n const filterElement = SelectorEngine.find(selector)\n .filter(foundElem => foundElem === element)\n\n if (selector !== null && filterElement.length) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = SelectorEngine.find(SELECTOR_ACTIVES, this._parent)\n .filter(elem => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n const container = SelectorEngine.findOne(this._selector)\n if (actives) {\n const tempActiveData = actives.filter(elem => container !== elem)\n activesData = tempActiveData[0] ? Data.getData(tempActiveData[0], DATA_KEY) : null\n\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n if (startEvent.defaultPrevented) {\n return\n }\n\n if (actives) {\n actives.forEach(elemActive => {\n if (container !== elemActive) {\n Collapse.collapseInterface(elemActive, 'hide')\n }\n\n if (!activesData) {\n Data.setData(elemActive, DATA_KEY, null)\n }\n })\n }\n\n const dimension = this._getDimension()\n\n this._element.classList.remove(CLASS_NAME_COLLAPSE)\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n this._triggerArray.forEach(element => {\n element.classList.remove(CLASS_NAME_COLLAPSED)\n element.setAttribute('aria-expanded', true)\n })\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n\n emulateTransitionEnd(this._element, transitionDuration)\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n if (startEvent.defaultPrevented) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n reflow(this._element)\n\n this._element.classList.add(CLASS_NAME_COLLAPSING)\n this._element.classList.remove(CLASS_NAME_COLLAPSE, CLASS_NAME_SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const elem = getElementFromSelector(trigger)\n\n if (elem && !elem.classList.contains(CLASS_NAME_SHOW)) {\n trigger.classList.add(CLASS_NAME_COLLAPSED)\n trigger.setAttribute('aria-expanded', false)\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n this._element.classList.remove(CLASS_NAME_COLLAPSING)\n this._element.classList.add(CLASS_NAME_COLLAPSE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = this._element.classList.contains(WIDTH)\n return hasWidth ? WIDTH : HEIGHT\n }\n\n _getParent() {\n let { parent } = this._config\n\n if (isElement(parent)) {\n // it's a jQuery object\n if (typeof parent.jquery !== 'undefined' || typeof parent[0] !== 'undefined') {\n parent = parent[0]\n }\n } else {\n parent = SelectorEngine.findOne(parent)\n }\n\n const selector = `${SELECTOR_DATA_TOGGLE}[data-parent=\"${parent}\"]`\n\n SelectorEngine.find(selector, parent)\n .forEach(element => {\n const selected = getElementFromSelector(element)\n\n this._addAriaAndCollapsedClass(\n selected,\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = element.classList.contains(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n triggerArray.forEach(elem => {\n if (isOpen) {\n elem.classList.remove(CLASS_NAME_COLLAPSED)\n } else {\n elem.classList.add(CLASS_NAME_COLLAPSED)\n }\n\n elem.setAttribute('aria-expanded', isOpen)\n })\n }\n }\n }\n\n // Static\n\n static collapseInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Collapse.collapseInterface(this, config)\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.target.tagName === 'A') {\n event.preventDefault()\n }\n\n const triggerData = Manipulator.getDataAttributes(this)\n const selector = getSelectorFromElement(this)\n const selectorElements = SelectorEngine.find(selector)\n\n selectorElements.forEach(element => {\n const data = Data.getData(element, DATA_KEY)\n let config\n if (data) {\n // update parent attribute\n if (data._parent === null && typeof triggerData.parent === 'string') {\n data._config.parent = triggerData.parent\n data._parent = data._getParent()\n }\n\n config = 'toggle'\n } else {\n config = triggerData\n }\n\n Collapse.collapseInterface(element, config)\n })\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .collapse to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Collapse.jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse.jQueryInterface\n }\n}\n\nexport default Collapse\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","document","querySelector","getElementFromSelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Default","toggle","parent","DefaultType","EVENT_SHOW","EVENT_SHOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_CLICK_DATA_API","CLASS_NAME_SHOW","CLASS_NAME_COLLAPSE","CLASS_NAME_COLLAPSING","CLASS_NAME_COLLAPSED","WIDTH","HEIGHT","SELECTOR_ACTIVES","SELECTOR_DATA_TOGGLE","Collapse","_isTransitioning","_element","_config","_getConfig","_triggerArray","SelectorEngine","find","id","toggleList","i","len","length","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","Data","setData","classList","contains","hide","show","actives","activesData","container","findOne","tempActiveData","getData","startEvent","EventHandler","trigger","defaultPrevented","elemActive","collapseInterface","dimension","_getDimension","remove","add","style","setAttribute","setTransitioning","complete","capitalizedDimension","slice","scrollSize","one","getBoundingClientRect","triggerArrayLength","isTransitioning","dispose","removeData","Boolean","hasWidth","jquery","selected","triggerArray","isOpen","data","Manipulator","getDataAttributes","TypeError","jQueryInterface","each","getInstance","on","event","target","tagName","preventDefault","triggerData","selectorElements","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
diff --git a/js/dist/dom/data.js.map b/js/dist/dom/data.js.map
index 331f903a56..42d97d84b5 100644
--- a/js/dist/dom/data.js.map
+++ b/js/dist/dom/data.js.map
@@ -1 +1 @@
-{"version":3,"file":"data.js","sources":["../../src/dom/data.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n"],"names":["mapData","storeData","id","set","element","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData"],"mappings":";;;;;;;;;;;EAAA;;;;;;;EAOA;;;;;EAMA,IAAMA,OAAO,GAAI,YAAM;EACrB,MAAMC,SAAS,GAAG,EAAlB;EACA,MAAIC,EAAE,GAAG,CAAT;EACA,SAAO;EACLC,IAAAA,GADK,eACDC,OADC,EACQC,GADR,EACaC,IADb,EACmB;EACtB,UAAI,OAAOF,OAAO,CAACC,GAAf,KAAuB,WAA3B,EAAwC;EACtCD,QAAAA,OAAO,CAACC,GAAR,GAAc;EACZA,UAAAA,GAAG,EAAHA,GADY;EAEZH,UAAAA,EAAE,EAAFA;EAFY,SAAd;EAIAA,QAAAA,EAAE;EACH;;EAEDD,MAAAA,SAAS,CAACG,OAAO,CAACC,GAAR,CAAYH,EAAb,CAAT,GAA4BI,IAA5B;EACD,KAXI;EAYLC,IAAAA,GAZK,eAYDH,OAZC,EAYQC,GAZR,EAYa;EAChB,UAAI,CAACD,OAAD,IAAY,OAAOA,OAAO,CAACC,GAAf,KAAuB,WAAvC,EAAoD;EAClD,eAAO,IAAP;EACD;;EAED,UAAMG,aAAa,GAAGJ,OAAO,CAACC,GAA9B;;EACA,UAAIG,aAAa,CAACH,GAAd,KAAsBA,GAA1B,EAA+B;EAC7B,eAAOJ,SAAS,CAACO,aAAa,CAACN,EAAf,CAAhB;EACD;;EAED,aAAO,IAAP;EACD,KAvBI;EAwBLO,IAAAA,MAxBK,mBAwBEL,OAxBF,EAwBWC,GAxBX,EAwBgB;EACnB,UAAI,OAAOD,OAAO,CAACC,GAAf,KAAuB,WAA3B,EAAwC;EACtC;EACD;;EAED,UAAMG,aAAa,GAAGJ,OAAO,CAACC,GAA9B;;EACA,UAAIG,aAAa,CAACH,GAAd,KAAsBA,GAA1B,EAA+B;EAC7B,eAAOJ,SAAS,CAACO,aAAa,CAACN,EAAf,CAAhB;EACA,eAAOE,OAAO,CAACC,GAAf;EACD;EACF;EAlCI,GAAP;EAoCD,CAvCe,EAAhB;;EAyCA,IAAMK,IAAI,GAAG;EACXC,EAAAA,OADW,mBACHC,QADG,EACOP,GADP,EACYC,IADZ,EACkB;EAC3BN,IAAAA,OAAO,CAACG,GAAR,CAAYS,QAAZ,EAAsBP,GAAtB,EAA2BC,IAA3B;EACD,GAHU;EAIXO,EAAAA,OAJW,mBAIHD,QAJG,EAIOP,GAJP,EAIY;EACrB,WAAOL,OAAO,CAACO,GAAR,CAAYK,QAAZ,EAAsBP,GAAtB,CAAP;EACD,GANU;EAOXS,EAAAA,UAPW,sBAOAF,QAPA,EAOUP,GAPV,EAOe;EACxBL,IAAAA,OAAO,CAACS,MAAR,CAAeG,QAAf,EAAyBP,GAAzB;EACD;EATU,CAAb;;;;;;;;"} \ No newline at end of file
+{"version":3,"file":"data.js","sources":["../../src/dom/data.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/data.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst mapData = (() => {\n const storeData = {}\n let id = 1\n return {\n set(element, key, data) {\n if (typeof element.key === 'undefined') {\n element.key = {\n key,\n id\n }\n id++\n }\n\n storeData[element.key.id] = data\n },\n get(element, key) {\n if (!element || typeof element.key === 'undefined') {\n return null\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n return storeData[keyProperties.id]\n }\n\n return null\n },\n delete(element, key) {\n if (typeof element.key === 'undefined') {\n return\n }\n\n const keyProperties = element.key\n if (keyProperties.key === key) {\n delete storeData[keyProperties.id]\n delete element.key\n }\n }\n }\n})()\n\nconst Data = {\n setData(instance, key, data) {\n mapData.set(instance, key, data)\n },\n getData(instance, key) {\n return mapData.get(instance, key)\n },\n removeData(instance, key) {\n mapData.delete(instance, key)\n }\n}\n\nexport default Data\n"],"names":["mapData","storeData","id","set","element","key","data","get","keyProperties","delete","Data","setData","instance","getData","removeData"],"mappings":";;;;;;;;;;;EAAA;;;;;;;EAOA;;;;;EAMA,IAAMA,OAAO,GAAI,YAAM;EACrB,MAAMC,SAAS,GAAG,EAAlB;EACA,MAAIC,EAAE,GAAG,CAAT;EACA,SAAO;EACLC,IAAAA,GADK,eACDC,OADC,EACQC,GADR,EACaC,IADb,EACmB;EACtB,UAAI,OAAOF,OAAO,CAACC,GAAf,KAAuB,WAA3B,EAAwC;EACtCD,QAAAA,OAAO,CAACC,GAAR,GAAc;EACZA,UAAAA,GAAG,EAAHA,GADY;EAEZH,UAAAA,EAAE,EAAFA;EAFY,SAAd;EAIAA,QAAAA,EAAE;EACH;;EAEDD,MAAAA,SAAS,CAACG,OAAO,CAACC,GAAR,CAAYH,EAAb,CAAT,GAA4BI,IAA5B;EACD,KAXI;EAYLC,IAAAA,GAZK,eAYDH,OAZC,EAYQC,GAZR,EAYa;EAChB,UAAI,CAACD,OAAD,IAAY,OAAOA,OAAO,CAACC,GAAf,KAAuB,WAAvC,EAAoD;EAClD,eAAO,IAAP;EACD;;EAED,UAAMG,aAAa,GAAGJ,OAAO,CAACC,GAA9B;;EACA,UAAIG,aAAa,CAACH,GAAd,KAAsBA,GAA1B,EAA+B;EAC7B,eAAOJ,SAAS,CAACO,aAAa,CAACN,EAAf,CAAhB;EACD;;EAED,aAAO,IAAP;EACD,KAvBI;EAwBLO,IAAAA,MAxBK,mBAwBEL,OAxBF,EAwBWC,GAxBX,EAwBgB;EACnB,UAAI,OAAOD,OAAO,CAACC,GAAf,KAAuB,WAA3B,EAAwC;EACtC;EACD;;EAED,UAAMG,aAAa,GAAGJ,OAAO,CAACC,GAA9B;;EACA,UAAIG,aAAa,CAACH,GAAd,KAAsBA,GAA1B,EAA+B;EAC7B,eAAOJ,SAAS,CAACO,aAAa,CAACN,EAAf,CAAhB;EACA,eAAOE,OAAO,CAACC,GAAf;EACD;EACF;EAlCI,GAAP;EAoCD,CAvCe,EAAhB;;MAyCMK,IAAI,GAAG;EACXC,EAAAA,OADW,mBACHC,QADG,EACOP,GADP,EACYC,IADZ,EACkB;EAC3BN,IAAAA,OAAO,CAACG,GAAR,CAAYS,QAAZ,EAAsBP,GAAtB,EAA2BC,IAA3B;EACD,GAHU;EAIXO,EAAAA,OAJW,mBAIHD,QAJG,EAIOP,GAJP,EAIY;EACrB,WAAOL,OAAO,CAACO,GAAR,CAAYK,QAAZ,EAAsBP,GAAtB,CAAP;EACD,GANU;EAOXS,EAAAA,UAPW,sBAOAF,QAPA,EAOUP,GAPV,EAOe;EACxBL,IAAAA,OAAO,CAACS,MAAR,CAAeG,QAAf,EAAyBP,GAAzB;EACD;EATU;;;;;;;;"} \ No newline at end of file
diff --git a/js/dist/dom/event-handler.js b/js/dist/dom/event-handler.js
index 18b35a46f4..ee3ece6226 100644
--- a/js/dist/dom/event-handler.js
+++ b/js/dist/dom/event-handler.js
@@ -42,7 +42,6 @@
var $ = getjQuery();
var namespaceRegex = /[^.]*(?=\..*)\.|.*/;
var stripNameRegex = /\..*/;
- var keyEventRegex = /^key/;
var stripUidRegex = /::\d+$/;
var eventRegistry = {}; // Events storage
@@ -69,19 +68,8 @@
return eventRegistry[uid];
}
- function fixEvent(event, element) {
- // Add which for key events
- if (event.which === null && keyEventRegex.test(event.type)) {
- event.which = event.charCode === null ? event.keyCode : event.charCode;
- }
-
- event.delegateTarget = element;
- }
-
function bootstrapHandler(element, fn) {
return function handler(event) {
- fixEvent(event, element);
-
if (handler.oneOff) {
EventHandler.off(element, event.type, fn);
}
@@ -97,8 +85,6 @@
for (var target = event.target; target && target !== this; target = target.parentNode) {
for (var i = domElements.length; i--;) {
if (domElements[i] === target) {
- fixEvent(event, target);
-
if (handler.oneOff) {
EventHandler.off(element, event.type, fn);
}
diff --git a/js/dist/dom/event-handler.js.map b/js/dist/dom/event-handler.js.map
index 3a64484f3e..b15ff065ae 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/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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\nimport { defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst $ = getjQuery()\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst keyEventRegex = /^key/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction fixEvent(event, element) {\n // Add which for key events\n if (event.which === null && keyEventRegex.test(event.type)) {\n event.which = event.charCode === null ? event.keyCode : event.charCode\n }\n\n event.delegateTarget = element\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n fixEvent(event, element)\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n fixEvent(event, target)\n\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n"],"names":["getjQuery","window","jQuery","document","body","hasAttribute","$","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","slice","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","Event","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","key","defineProperty","get","preventDefault","defaultPreventedPreservedOnDispatch","dispatchEvent"],"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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/event-handler.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from '../util/index'\nimport { defaultPreventedPreservedOnDispatch } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst $ = getjQuery()\nconst namespaceRegex = /[^.]*(?=\\..*)\\.|.*/\nconst stripNameRegex = /\\..*/\nconst stripUidRegex = /::\\d+$/\nconst eventRegistry = {} // Events storage\nlet uidEvent = 1\nconst customEvents = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n}\nconst nativeEvents = [\n 'click',\n 'dblclick',\n 'mouseup',\n 'mousedown',\n 'contextmenu',\n 'mousewheel',\n 'DOMMouseScroll',\n 'mouseover',\n 'mouseout',\n 'mousemove',\n 'selectstart',\n 'selectend',\n 'keydown',\n 'keypress',\n 'keyup',\n 'orientationchange',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n 'pointerdown',\n 'pointermove',\n 'pointerup',\n 'pointerleave',\n 'pointercancel',\n 'gesturestart',\n 'gesturechange',\n 'gestureend',\n 'focus',\n 'blur',\n 'change',\n 'reset',\n 'select',\n 'submit',\n 'focusin',\n 'focusout',\n 'load',\n 'unload',\n 'beforeunload',\n 'resize',\n 'move',\n 'DOMContentLoaded',\n 'readystatechange',\n 'error',\n 'abort',\n 'scroll'\n]\n\n/**\n * ------------------------------------------------------------------------\n * Private methods\n * ------------------------------------------------------------------------\n */\n\nfunction getUidEvent(element, uid) {\n return (uid && `${uid}::${uidEvent++}`) || element.uidEvent || uidEvent++\n}\n\nfunction getEvent(element) {\n const uid = getUidEvent(element)\n\n element.uidEvent = uid\n eventRegistry[uid] = eventRegistry[uid] || {}\n\n return eventRegistry[uid]\n}\n\nfunction bootstrapHandler(element, fn) {\n return function handler(event) {\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(element, [event])\n }\n}\n\nfunction bootstrapDelegationHandler(element, selector, fn) {\n return function handler(event) {\n const domElements = element.querySelectorAll(selector)\n\n for (let { target } = event; target && target !== this; target = target.parentNode) {\n for (let i = domElements.length; i--;) {\n if (domElements[i] === target) {\n if (handler.oneOff) {\n EventHandler.off(element, event.type, fn)\n }\n\n return fn.apply(target, [event])\n }\n }\n }\n\n // To please ESLint\n return null\n }\n}\n\nfunction findHandler(events, handler, delegationSelector = null) {\n const uidEventList = Object.keys(events)\n\n for (let i = 0, len = uidEventList.length; i < len; i++) {\n const event = events[uidEventList[i]]\n\n if (event.originalHandler === handler && event.delegationSelector === delegationSelector) {\n return event\n }\n }\n\n return null\n}\n\nfunction normalizeParams(originalTypeEvent, handler, delegationFn) {\n const delegation = typeof handler === 'string'\n const originalHandler = delegation ? delegationFn : handler\n\n // allow to get the native events from namespaced events ('click.bs.button' --> 'click')\n let typeEvent = originalTypeEvent.replace(stripNameRegex, '')\n const custom = customEvents[typeEvent]\n\n if (custom) {\n typeEvent = custom\n }\n\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n if (!isNative) {\n typeEvent = originalTypeEvent\n }\n\n return [delegation, originalHandler, typeEvent]\n}\n\nfunction addHandler(element, originalTypeEvent, handler, delegationFn, oneOff) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n if (!handler) {\n handler = delegationFn\n delegationFn = null\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const events = getEvent(element)\n const handlers = events[typeEvent] || (events[typeEvent] = {})\n const previousFn = findHandler(handlers, originalHandler, delegation ? handler : null)\n\n if (previousFn) {\n previousFn.oneOff = previousFn.oneOff && oneOff\n\n return\n }\n\n const uid = getUidEvent(originalHandler, originalTypeEvent.replace(namespaceRegex, ''))\n const fn = delegation ?\n bootstrapDelegationHandler(element, handler, delegationFn) :\n bootstrapHandler(element, handler)\n\n fn.delegationSelector = delegation ? handler : null\n fn.originalHandler = originalHandler\n fn.oneOff = oneOff\n fn.uidEvent = uid\n handlers[uid] = fn\n\n element.addEventListener(typeEvent, fn, delegation)\n}\n\nfunction removeHandler(element, events, typeEvent, handler, delegationSelector) {\n const fn = findHandler(events[typeEvent], handler, delegationSelector)\n\n if (!fn) {\n return\n }\n\n element.removeEventListener(typeEvent, fn, Boolean(delegationSelector))\n delete events[typeEvent][fn.uidEvent]\n}\n\nfunction removeNamespacedHandlers(element, events, typeEvent, namespace) {\n const storeElementEvent = events[typeEvent] || {}\n\n Object.keys(storeElementEvent)\n .forEach(handlerKey => {\n if (handlerKey.indexOf(namespace) > -1) {\n const event = storeElementEvent[handlerKey]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n}\n\nconst EventHandler = {\n on(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, false)\n },\n\n one(element, event, handler, delegationFn) {\n addHandler(element, event, handler, delegationFn, true)\n },\n\n off(element, originalTypeEvent, handler, delegationFn) {\n if (typeof originalTypeEvent !== 'string' || !element) {\n return\n }\n\n const [delegation, originalHandler, typeEvent] = normalizeParams(originalTypeEvent, handler, delegationFn)\n const inNamespace = typeEvent !== originalTypeEvent\n const events = getEvent(element)\n const isNamespace = originalTypeEvent.charAt(0) === '.'\n\n if (typeof originalHandler !== 'undefined') {\n // Simplest case: handler is passed, remove that listener ONLY.\n if (!events || !events[typeEvent]) {\n return\n }\n\n removeHandler(element, events, typeEvent, originalHandler, delegation ? handler : null)\n return\n }\n\n if (isNamespace) {\n Object.keys(events)\n .forEach(elementEvent => {\n removeNamespacedHandlers(element, events, elementEvent, originalTypeEvent.slice(1))\n })\n }\n\n const storeElementEvent = events[typeEvent] || {}\n Object.keys(storeElementEvent)\n .forEach(keyHandlers => {\n const handlerKey = keyHandlers.replace(stripUidRegex, '')\n\n if (!inNamespace || originalTypeEvent.indexOf(handlerKey) > -1) {\n const event = storeElementEvent[keyHandlers]\n\n removeHandler(element, events, typeEvent, event.originalHandler, event.delegationSelector)\n }\n })\n },\n\n trigger(element, event, args) {\n if (typeof event !== 'string' || !element) {\n return null\n }\n\n const typeEvent = event.replace(stripNameRegex, '')\n const inNamespace = event !== typeEvent\n const isNative = nativeEvents.indexOf(typeEvent) > -1\n\n let jQueryEvent\n let bubbles = true\n let nativeDispatch = true\n let defaultPrevented = false\n let evt = null\n\n if (inNamespace && $) {\n jQueryEvent = $.Event(event, args)\n\n $(element).trigger(jQueryEvent)\n bubbles = !jQueryEvent.isPropagationStopped()\n nativeDispatch = !jQueryEvent.isImmediatePropagationStopped()\n defaultPrevented = jQueryEvent.isDefaultPrevented()\n }\n\n if (isNative) {\n evt = document.createEvent('HTMLEvents')\n evt.initEvent(typeEvent, bubbles, true)\n } else {\n evt = new CustomEvent(event, {\n bubbles,\n cancelable: true\n })\n }\n\n // merge custom informations in our event\n if (typeof args !== 'undefined') {\n Object.keys(args)\n .forEach(key => {\n Object.defineProperty(evt, key, {\n get() {\n return args[key]\n }\n })\n })\n }\n\n if (defaultPrevented) {\n evt.preventDefault()\n\n if (!defaultPreventedPreservedOnDispatch) {\n Object.defineProperty(evt, 'defaultPrevented', {\n get: () => true\n })\n }\n }\n\n if (nativeDispatch) {\n element.dispatchEvent(evt)\n }\n\n if (evt.defaultPrevented && typeof jQueryEvent !== 'undefined') {\n jQueryEvent.preventDefault()\n }\n\n return evt\n }\n}\n\nexport default EventHandler\n"],"names":["getjQuery","window","jQuery","document","body","hasAttribute","$","namespaceRegex","stripNameRegex","stripUidRegex","eventRegistry","uidEvent","customEvents","mouseenter","mouseleave","nativeEvents","getUidEvent","element","uid","getEvent","bootstrapHandler","fn","handler","event","oneOff","EventHandler","off","type","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","slice","keyHandlers","trigger","args","jQueryEvent","bubbles","nativeDispatch","defaultPrevented","evt","Event","isPropagationStopped","isImmediatePropagationStopped","isDefaultPrevented","createEvent","initEvent","CustomEvent","cancelable","key","defineProperty","get","preventDefault","defaultPreventedPreservedOnDispatch","dispatchEvent"],"mappings":"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"} \ No newline at end of file
diff --git a/js/dist/dom/manipulator.js.map b/js/dist/dom/manipulator.js.map
index d3744358c7..cce13dec26 100644
--- a/js/dist/dom/manipulator.js.map
+++ b/js/dist/dom/manipulator.js.map
@@ -1 +1 @@
-{"version":3,"file":"manipulator.js","sources":["../../src/dom/manipulator.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n"],"names":["normalizeData","val","Number","toString","normalizeDataKey","key","replace","chr","toLowerCase","Manipulator","setDataAttribute","element","value","setAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","dataset","Object","keys","forEach","getDataAttribute","getAttribute","offset","rect","getBoundingClientRect","top","document","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","classList","contains","remove","add"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"manipulator.js","sources":["../../src/dom/manipulator.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/manipulator.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nfunction normalizeData(val) {\n if (val === 'true') {\n return true\n }\n\n if (val === 'false') {\n return false\n }\n\n if (val === Number(val).toString()) {\n return Number(val)\n }\n\n if (val === '' || val === 'null') {\n return null\n }\n\n return val\n}\n\nfunction normalizeDataKey(key) {\n return key.replace(/[A-Z]/g, chr => `-${chr.toLowerCase()}`)\n}\n\nconst Manipulator = {\n setDataAttribute(element, key, value) {\n element.setAttribute(`data-${normalizeDataKey(key)}`, value)\n },\n\n removeDataAttribute(element, key) {\n element.removeAttribute(`data-${normalizeDataKey(key)}`)\n },\n\n getDataAttributes(element) {\n if (!element) {\n return {}\n }\n\n const attributes = {\n ...element.dataset\n }\n\n Object.keys(attributes).forEach(key => {\n attributes[key] = normalizeData(attributes[key])\n })\n\n return attributes\n },\n\n getDataAttribute(element, key) {\n return normalizeData(element.getAttribute(`data-${normalizeDataKey(key)}`))\n },\n\n offset(element) {\n const rect = element.getBoundingClientRect()\n\n return {\n top: rect.top + document.body.scrollTop,\n left: rect.left + document.body.scrollLeft\n }\n },\n\n position(element) {\n return {\n top: element.offsetTop,\n left: element.offsetLeft\n }\n },\n\n toggleClass(element, className) {\n if (!element) {\n return\n }\n\n if (element.classList.contains(className)) {\n element.classList.remove(className)\n } else {\n element.classList.add(className)\n }\n }\n}\n\nexport default Manipulator\n"],"names":["normalizeData","val","Number","toString","normalizeDataKey","key","replace","chr","toLowerCase","Manipulator","setDataAttribute","element","value","setAttribute","removeDataAttribute","removeAttribute","getDataAttributes","attributes","dataset","Object","keys","forEach","getDataAttribute","getAttribute","offset","rect","getBoundingClientRect","top","document","body","scrollTop","left","scrollLeft","position","offsetTop","offsetLeft","toggleClass","className","classList","contains","remove","add"],"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 daa74c85ad..d01375abdf 100644
--- a/js/dist/dom/selector-engine.js
+++ b/js/dist/dom/selector-engine.js
@@ -65,9 +65,6 @@
return parents;
},
- closest: function closest(element, selector) {
- return element.closest(selector);
- },
prev: function prev(element, selector) {
var previous = element.previousElementSibling;
diff --git a/js/dist/dom/selector-engine.js.map b/js/dist/dom/selector-engine.js.map
index 0d8ccceb6e..52ed9cb5c3 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/dom/selector-engine.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n return [].concat(...findFn.call(element, selector))\n },\n\n findOne(selector, element = document.documentElement) {\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n const children = [].concat(...element.children)\n\n return children.filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n closest(element, selector) {\n return element.closest(selector)\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n }\n}\n\nexport default SelectorEngine\n"],"names":["NODE_TEXT","SelectorEngine","matches","element","selector","find","document","documentElement","concat","findFn","call","findOne","children","filter","child","parents","ancestor","parentNode","nodeType","Node","ELEMENT_NODE","push","closest","prev","previous","previousElementSibling","next","nextElementSibling"],"mappings":";;;;;;;;;;;EAAA;;;;;;EASA;;;;;;EAMA,IAAMA,SAAS,GAAG,CAAlB;EAEA,IAAMC,cAAc,GAAG;EACrBC,EAAAA,OADqB,mBACbC,OADa,EACJC,QADI,EACM;EACzB,WAAOD,OAAO,CAACD,OAAR,CAAgBE,QAAhB,CAAP;EACD,GAHoB;EAKrBC,EAAAA,IALqB,gBAKhBD,QALgB,EAKND,OALM,EAK8B;EAAA;;EAAA,QAApCA,OAAoC;EAApCA,MAAAA,OAAoC,GAA1BG,QAAQ,CAACC,eAAiB;EAAA;;EACjD,WAAO,YAAGC,MAAH,aAAaC,gBAAM,CAACC,IAAP,CAAYP,OAAZ,EAAqBC,QAArB,CAAb,CAAP;EACD,GAPoB;EASrBO,EAAAA,OATqB,mBASbP,QATa,EASHD,OATG,EASiC;EAAA,QAApCA,OAAoC;EAApCA,MAAAA,OAAoC,GAA1BG,QAAQ,CAACC,eAAiB;EAAA;;EACpD,WAAOI,mBAAO,CAACD,IAAR,CAAaP,OAAb,EAAsBC,QAAtB,CAAP;EACD,GAXoB;EAarBQ,EAAAA,QAbqB,oBAaZT,OAbY,EAaHC,QAbG,EAaO;EAAA;;EAC1B,QAAMQ,QAAQ,GAAG,aAAGJ,MAAH,cAAaL,OAAO,CAACS,QAArB,CAAjB;;EAEA,WAAOA,QAAQ,CAACC,MAAT,CAAgB,UAAAC,KAAK;EAAA,aAAIA,KAAK,CAACZ,OAAN,CAAcE,QAAd,CAAJ;EAAA,KAArB,CAAP;EACD,GAjBoB;EAmBrBW,EAAAA,OAnBqB,mBAmBbZ,OAnBa,EAmBJC,QAnBI,EAmBM;EACzB,QAAMW,OAAO,GAAG,EAAhB;EAEA,QAAIC,QAAQ,GAAGb,OAAO,CAACc,UAAvB;;EAEA,WAAOD,QAAQ,IAAIA,QAAQ,CAACE,QAAT,KAAsBC,IAAI,CAACC,YAAvC,IAAuDJ,QAAQ,CAACE,QAAT,KAAsBlB,SAApF,EAA+F;EAC7F,UAAI,KAAKE,OAAL,CAAac,QAAb,EAAuBZ,QAAvB,CAAJ,EAAsC;EACpCW,QAAAA,OAAO,CAACM,IAAR,CAAaL,QAAb;EACD;;EAEDA,MAAAA,QAAQ,GAAGA,QAAQ,CAACC,UAApB;EACD;;EAED,WAAOF,OAAP;EACD,GAjCoB;EAmCrBO,EAAAA,OAnCqB,mBAmCbnB,OAnCa,EAmCJC,QAnCI,EAmCM;EACzB,WAAOD,OAAO,CAACmB,OAAR,CAAgBlB,QAAhB,CAAP;EACD,GArCoB;EAuCrBmB,EAAAA,IAvCqB,gBAuChBpB,OAvCgB,EAuCPC,QAvCO,EAuCG;EACtB,QAAIoB,QAAQ,GAAGrB,OAAO,CAACsB,sBAAvB;;EAEA,WAAOD,QAAP,EAAiB;EACf,UAAIA,QAAQ,CAACtB,OAAT,CAAiBE,QAAjB,CAAJ,EAAgC;EAC9B,eAAO,CAACoB,QAAD,CAAP;EACD;;EAEDA,MAAAA,QAAQ,GAAGA,QAAQ,CAACC,sBAApB;EACD;;EAED,WAAO,EAAP;EACD,GAnDoB;EAqDrBC,EAAAA,IArDqB,gBAqDhBvB,OArDgB,EAqDPC,QArDO,EAqDG;EACtB,QAAIsB,IAAI,GAAGvB,OAAO,CAACwB,kBAAnB;;EAEA,WAAOD,IAAP,EAAa;EACX,UAAI,KAAKxB,OAAL,CAAawB,IAAb,EAAmBtB,QAAnB,CAAJ,EAAkC;EAChC,eAAO,CAACsB,IAAD,CAAP;EACD;;EAEDA,MAAAA,IAAI,GAAGA,IAAI,CAACC,kBAAZ;EACD;;EAED,WAAO,EAAP;EACD;EAjEoB,CAAvB;;;;;;;;"} \ No newline at end of file
+{"version":3,"file":"selector-engine.js","sources":["../../src/dom/selector-engine.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dom/selector-engine.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { find as findFn, findOne } from './polyfill'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NODE_TEXT = 3\n\nconst SelectorEngine = {\n matches(element, selector) {\n return element.matches(selector)\n },\n\n find(selector, element = document.documentElement) {\n return [].concat(...findFn.call(element, selector))\n },\n\n findOne(selector, element = document.documentElement) {\n return findOne.call(element, selector)\n },\n\n children(element, selector) {\n const children = [].concat(...element.children)\n\n return children.filter(child => child.matches(selector))\n },\n\n parents(element, selector) {\n const parents = []\n\n let ancestor = element.parentNode\n\n while (ancestor && ancestor.nodeType === Node.ELEMENT_NODE && ancestor.nodeType !== NODE_TEXT) {\n if (this.matches(ancestor, selector)) {\n parents.push(ancestor)\n }\n\n ancestor = ancestor.parentNode\n }\n\n return parents\n },\n\n prev(element, selector) {\n let previous = element.previousElementSibling\n\n while (previous) {\n if (previous.matches(selector)) {\n return [previous]\n }\n\n previous = previous.previousElementSibling\n }\n\n return []\n },\n\n next(element, selector) {\n let next = element.nextElementSibling\n\n while (next) {\n if (this.matches(next, selector)) {\n return [next]\n }\n\n next = next.nextElementSibling\n }\n\n return []\n }\n}\n\nexport default SelectorEngine\n"],"names":["NODE_TEXT","SelectorEngine","matches","element","selector","find","document","documentElement","concat","findFn","call","findOne","children","filter","child","parents","ancestor","parentNode","nodeType","Node","ELEMENT_NODE","push","prev","previous","previousElementSibling","next","nextElementSibling"],"mappings":";;;;;;;;;;;EAAA;;;;;;EASA;;;;;;EAMA,IAAMA,SAAS,GAAG,CAAlB;MAEMC,cAAc,GAAG;EACrBC,EAAAA,OADqB,mBACbC,OADa,EACJC,QADI,EACM;EACzB,WAAOD,OAAO,CAACD,OAAR,CAAgBE,QAAhB,CAAP;EACD,GAHoB;EAKrBC,EAAAA,IALqB,gBAKhBD,QALgB,EAKND,OALM,EAK8B;EAAA;;EAAA,QAApCA,OAAoC;EAApCA,MAAAA,OAAoC,GAA1BG,QAAQ,CAACC,eAAiB;EAAA;;EACjD,WAAO,YAAGC,MAAH,aAAaC,gBAAM,CAACC,IAAP,CAAYP,OAAZ,EAAqBC,QAArB,CAAb,CAAP;EACD,GAPoB;EASrBO,EAAAA,OATqB,mBASbP,QATa,EASHD,OATG,EASiC;EAAA,QAApCA,OAAoC;EAApCA,MAAAA,OAAoC,GAA1BG,QAAQ,CAACC,eAAiB;EAAA;;EACpD,WAAOI,mBAAO,CAACD,IAAR,CAAaP,OAAb,EAAsBC,QAAtB,CAAP;EACD,GAXoB;EAarBQ,EAAAA,QAbqB,oBAaZT,OAbY,EAaHC,QAbG,EAaO;EAAA;;EAC1B,QAAMQ,QAAQ,GAAG,aAAGJ,MAAH,cAAaL,OAAO,CAACS,QAArB,CAAjB;;EAEA,WAAOA,QAAQ,CAACC,MAAT,CAAgB,UAAAC,KAAK;EAAA,aAAIA,KAAK,CAACZ,OAAN,CAAcE,QAAd,CAAJ;EAAA,KAArB,CAAP;EACD,GAjBoB;EAmBrBW,EAAAA,OAnBqB,mBAmBbZ,OAnBa,EAmBJC,QAnBI,EAmBM;EACzB,QAAMW,OAAO,GAAG,EAAhB;EAEA,QAAIC,QAAQ,GAAGb,OAAO,CAACc,UAAvB;;EAEA,WAAOD,QAAQ,IAAIA,QAAQ,CAACE,QAAT,KAAsBC,IAAI,CAACC,YAAvC,IAAuDJ,QAAQ,CAACE,QAAT,KAAsBlB,SAApF,EAA+F;EAC7F,UAAI,KAAKE,OAAL,CAAac,QAAb,EAAuBZ,QAAvB,CAAJ,EAAsC;EACpCW,QAAAA,OAAO,CAACM,IAAR,CAAaL,QAAb;EACD;;EAEDA,MAAAA,QAAQ,GAAGA,QAAQ,CAACC,UAApB;EACD;;EAED,WAAOF,OAAP;EACD,GAjCoB;EAmCrBO,EAAAA,IAnCqB,gBAmChBnB,OAnCgB,EAmCPC,QAnCO,EAmCG;EACtB,QAAImB,QAAQ,GAAGpB,OAAO,CAACqB,sBAAvB;;EAEA,WAAOD,QAAP,EAAiB;EACf,UAAIA,QAAQ,CAACrB,OAAT,CAAiBE,QAAjB,CAAJ,EAAgC;EAC9B,eAAO,CAACmB,QAAD,CAAP;EACD;;EAEDA,MAAAA,QAAQ,GAAGA,QAAQ,CAACC,sBAApB;EACD;;EAED,WAAO,EAAP;EACD,GA/CoB;EAiDrBC,EAAAA,IAjDqB,gBAiDhBtB,OAjDgB,EAiDPC,QAjDO,EAiDG;EACtB,QAAIqB,IAAI,GAAGtB,OAAO,CAACuB,kBAAnB;;EAEA,WAAOD,IAAP,EAAa;EACX,UAAI,KAAKvB,OAAL,CAAauB,IAAb,EAAmBrB,QAAnB,CAAJ,EAAkC;EAChC,eAAO,CAACqB,IAAD,CAAP;EACD;;EAEDA,MAAAA,IAAI,GAAGA,IAAI,CAACC,kBAAZ;EACD;;EAED,WAAO,EAAP;EACD;EA7DoB;;;;;;;;"} \ No newline at end of file
diff --git a/js/dist/dropdown.js b/js/dist/dropdown.js
index 5f14930db3..ef285b26f7 100644
--- a/js/dist/dropdown.js
+++ b/js/dist/dropdown.js
@@ -167,19 +167,14 @@
var DATA_KEY = 'bs.dropdown';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
-
- var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key
-
- var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key
-
- var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key
-
- var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key
-
- var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)
-
- var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
+ var ESCAPE_KEY = 'Escape';
+ var SPACE_KEY = 'Space';
+ var TAB_KEY = 'Tab';
+ var ARROW_UP_KEY = 'ArrowUp';
+ var ARROW_DOWN_KEY = 'ArrowDown';
+ var RIGHT_MOUSE_BUTTON = 2; // MouseEvent.button value for the secondary button, usually the right button
+
+ var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEY + "|" + ARROW_DOWN_KEY + "|" + ESCAPE_KEY);
var EVENT_HIDE = "hide" + EVENT_KEY;
var EVENT_HIDDEN = "hidden" + EVENT_KEY;
var EVENT_SHOW = "show" + EVENT_KEY;
@@ -309,7 +304,7 @@
// https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html
- if ('ontouchstart' in document.documentElement && !SelectorEngine.closest(parent, SELECTOR_NAVBAR_NAV)) {
+ if ('ontouchstart' in document.documentElement && !parent.closest(SELECTOR_NAVBAR_NAV)) {
var _ref;
(_ref = []).concat.apply(_ref, document.body.children).forEach(function (elem) {
@@ -384,7 +379,7 @@
};
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, this.constructor.Default, {}, Manipulator.getDataAttributes(this._element), {}, config);
+ config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), Manipulator.getDataAttributes(this._element)), config);
typeCheckConfig(NAME, config, this.constructor.DefaultType);
return config;
};
@@ -415,7 +410,7 @@
};
_proto._detectNavbar = function _detectNavbar() {
- return Boolean(SelectorEngine.closest(this._element, "." + CLASS_NAME_NAVBAR));
+ return Boolean(this._element.closest("." + CLASS_NAME_NAVBAR));
};
_proto._getOffset = function _getOffset() {
@@ -425,7 +420,7 @@
if (typeof this._config.offset === 'function') {
offset.fn = function (data) {
- data.offsets = _objectSpread2({}, data.offsets, {}, _this2._config.offset(data.offsets, _this2._element) || {});
+ data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this2._config.offset(data.offsets, _this2._element) || {});
return data;
};
} else {
@@ -455,7 +450,7 @@
};
}
- return _objectSpread2({}, popperConfig, {}, this._config.popperConfig);
+ return _objectSpread2(_objectSpread2({}, popperConfig), this._config.popperConfig);
} // Static
;
@@ -484,7 +479,7 @@
};
Dropdown.clearMenus = function clearMenus(event) {
- if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
+ if (event && (event.button === RIGHT_MOUSE_BUTTON || event.type === 'keyup' && event.key !== TAB_KEY)) {
return;
}
@@ -511,7 +506,7 @@
continue;
}
- if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && dropdownMenu.contains(event.target)) {
+ if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.key === TAB_KEY) && dropdownMenu.contains(event.target)) {
continue;
}
@@ -555,7 +550,7 @@
// - If key is other than escape
// - If key is not up or down => not a dropdown command
// - If trigger inside the menu => not a dropdown command
- if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || SelectorEngine.closest(event.target, SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.which)) {
+ if (/input|textarea/i.test(event.target.tagName) ? event.key === SPACE_KEY || event.key !== ESCAPE_KEY && (event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY || event.target.closest(SELECTOR_MENU)) : !REGEXP_KEYDOWN.test(event.key)) {
return;
}
@@ -569,14 +564,14 @@
var parent = Dropdown.getParentFromElement(this);
var isActive = this.classList.contains(CLASS_NAME_SHOW);
- if (event.which === ESCAPE_KEYCODE) {
+ if (event.key === ESCAPE_KEY) {
var button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0];
button.focus();
Dropdown.clearMenus();
return;
}
- if (!isActive || event.which === SPACE_KEYCODE) {
+ if (!isActive || event.key === SPACE_KEY) {
Dropdown.clearMenus();
return;
}
@@ -587,18 +582,20 @@
return;
}
- var index = items.indexOf(event.target) || 0;
+ var index = items.indexOf(event.target);
- if (event.which === ARROW_UP_KEYCODE && index > 0) {
+ if (event.key === ARROW_UP_KEY && index > 0) {
// Up
index--;
}
- if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
+ if (event.key === ARROW_DOWN_KEY && index < items.length - 1) {
// Down
index++;
- }
+ } // index is -1 if the first keydown is an ArrowUp
+
+ index = index === -1 ? 0 : index;
items[index].focus();
};
diff --git a/js/dist/dropdown.js.map b/js/dist/dropdown.js.map
index d099eb5ad7..73b9cf371f 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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n getElementFromSelector,\n isElement,\n isVisible,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !SelectorEngine.closest(parent, SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = PLACEMENT_TOP\n if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_TOPEND\n }\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(SelectorEngine.closest(this._element, `.${CLASS_NAME_NAVBAR}`))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config)\n })\n }\n\n static clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n (event.type === 'keyup' && event.which !== TAB_KEYCODE))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && ((event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName)) ||\n (event.type === 'keyup' && event.which === TAB_KEYCODE)) &&\n dropdownMenu.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.which === SPACE_KEYCODE || (event.which !== ESCAPE_KEYCODE &&\n ((event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE) ||\n SelectorEngine.closest(event.target, SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.which === ESCAPE_KEYCODE) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.which === SPACE_KEYCODE) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent)\n .filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target) || 0\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n items[index].focus()\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown.dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => e.stopPropagation())\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown.jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown.jQueryInterface\n }\n}\n\nexport default Dropdown\n"],"names":["toType","obj","undefined","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","trim","getElementFromSelector","document","querySelector","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","getComputedStyle","parentNodeStyle","display","visibility","noop","getjQuery","window","jQuery","body","hasAttribute","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","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_SHOW","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_NAVBAR","CLASS_NAME_POSITION_STATIC","SELECTOR_DATA_TOGGLE","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default","offset","flip","boundary","reference","popperConfig","DefaultType","Dropdown","_element","_popper","_config","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","Data","setData","toggle","disabled","classList","contains","isActive","clearMenus","show","parent","getParentFromElement","relatedTarget","showEvent","EventHandler","trigger","defaultPrevented","Popper","TypeError","referenceElement","jquery","add","_getPopperConfig","documentElement","SelectorEngine","closest","concat","children","elem","on","focus","setAttribute","Manipulator","toggleClass","hide","hideEvent","destroy","dispose","removeData","off","update","scheduleUpdate","event","preventDefault","stopPropagation","constructor","getDataAttributes","next","_getPlacement","parentDropdown","placement","Boolean","_getOffset","fn","data","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","getData","jQueryInterface","each","which","type","toggles","find","i","len","length","context","clickEvent","dropdownMenu","target","tagName","remove","dataApiKeydownHandler","button","matches","prev","items","filter","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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n getElementFromSelector,\n isElement,\n isVisible,\n noop,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst ESCAPE_KEY = 'Escape'\nconst SPACE_KEY = 'Space'\nconst TAB_KEY = 'Tab'\nconst ARROW_UP_KEY = 'ArrowUp'\nconst ARROW_DOWN_KEY = 'ArrowDown'\nconst RIGHT_MOUSE_BUTTON = 2 // MouseEvent.button value for the secondary button, usually the right button\n\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEY}|${ARROW_DOWN_KEY}|${ESCAPE_KEY}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_NAVBAR = 'navbar'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n}\n\nconst DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = this._element.classList.contains(CLASS_NAME_SHOW)\n\n Dropdown.clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show()\n }\n\n show() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, relatedTarget)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n parent.classList.add(CLASS_NAME_POSITION_STATIC)\n }\n\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n !parent.closest(SELECTOR_NAVBAR_NAV)) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_SHOWN, relatedTarget)\n }\n\n hide() {\n if (this._element.disabled || this._element.classList.contains(CLASS_NAME_DISABLED) || !this._menu.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this._element)\n const relatedTarget = {\n relatedTarget: this._element\n }\n\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n Manipulator.toggleClass(this._menu, CLASS_NAME_SHOW)\n Manipulator.toggleClass(this._element, CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._element, EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n EventHandler.on(this._element, EVENT_CLICK, event => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...Manipulator.getDataAttributes(this._element),\n ...config\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n return SelectorEngine.next(this._element, SELECTOR_MENU)[0]\n }\n\n _getPlacement() {\n const parentDropdown = this._element.parentNode\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if (parentDropdown.classList.contains(CLASS_NAME_DROPUP)) {\n placement = PLACEMENT_TOP\n if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_TOPEND\n }\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if (parentDropdown.classList.contains(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if (this._menu.classList.contains(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n\n return placement\n }\n\n _detectNavbar() {\n return Boolean(this._element.closest(`.${CLASS_NAME_NAVBAR}`))\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static dropdownInterface(element, config) {\n let data = Data.getData(element, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(element, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n }\n\n static jQueryInterface(config) {\n return this.each(function () {\n Dropdown.dropdownInterface(this, config)\n })\n }\n\n static clearMenus(event) {\n if (event && (event.button === RIGHT_MOUSE_BUTTON ||\n (event.type === 'keyup' && event.key !== TAB_KEY))) {\n return\n }\n\n const toggles = SelectorEngine.find(SELECTOR_DATA_TOGGLE)\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown.getParentFromElement(toggles[i])\n const context = Data.getData(toggles[i], DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!toggles[i].classList.contains(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && ((event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName)) ||\n (event.type === 'keyup' && event.key === TAB_KEY)) &&\n dropdownMenu.contains(event.target)) {\n continue\n }\n\n const hideEvent = EventHandler.trigger(parent, EVENT_HIDE, relatedTarget)\n if (hideEvent.defaultPrevented) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children)\n .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n dropdownMenu.classList.remove(CLASS_NAME_SHOW)\n toggles[i].classList.remove(CLASS_NAME_SHOW)\n EventHandler.trigger(parent, EVENT_HIDDEN, relatedTarget)\n }\n }\n\n static getParentFromElement(element) {\n return getElementFromSelector(element) || element.parentNode\n }\n\n static dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName) ?\n event.key === SPACE_KEY || (event.key !== ESCAPE_KEY &&\n ((event.key !== ARROW_DOWN_KEY && event.key !== ARROW_UP_KEY) ||\n event.target.closest(SELECTOR_MENU))) :\n !REGEXP_KEYDOWN.test(event.key)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || this.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown.getParentFromElement(this)\n const isActive = this.classList.contains(CLASS_NAME_SHOW)\n\n if (event.key === ESCAPE_KEY) {\n const button = this.matches(SELECTOR_DATA_TOGGLE) ? this : SelectorEngine.prev(this, SELECTOR_DATA_TOGGLE)[0]\n button.focus()\n Dropdown.clearMenus()\n return\n }\n\n if (!isActive || event.key === SPACE_KEY) {\n Dropdown.clearMenus()\n return\n }\n\n const items = SelectorEngine.find(SELECTOR_VISIBLE_ITEMS, parent)\n .filter(isVisible)\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.key === ARROW_UP_KEY && index > 0) { // Up\n index--\n }\n\n if (event.key === ARROW_DOWN_KEY && index < items.length - 1) { // Down\n index++\n }\n\n // index is -1 if the first keydown is an ArrowUp\n index = index === -1 ? 0 : index\n\n items[index].focus()\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, EVENT_CLICK_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_KEYUP_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown.dropdownInterface(this, 'toggle')\n})\nEventHandler\n .on(document, EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, e => e.stopPropagation())\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Dropdown.jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown.jQueryInterface\n }\n}\n\nexport default Dropdown\n"],"names":["toType","obj","undefined","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","trim","getElementFromSelector","document","querySelector","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","getComputedStyle","parentNodeStyle","display","visibility","noop","getjQuery","window","jQuery","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEY","SPACE_KEY","TAB_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","RIGHT_MOUSE_BUTTON","REGEXP_KEYDOWN","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK","EVENT_CLICK_DATA_API","EVENT_KEYDOWN_DATA_API","EVENT_KEYUP_DATA_API","CLASS_NAME_DISABLED","CLASS_NAME_SHOW","CLASS_NAME_DROPUP","CLASS_NAME_DROPRIGHT","CLASS_NAME_DROPLEFT","CLASS_NAME_MENURIGHT","CLASS_NAME_NAVBAR","CLASS_NAME_POSITION_STATIC","SELECTOR_DATA_TOGGLE","SELECTOR_FORM_CHILD","SELECTOR_MENU","SELECTOR_NAVBAR_NAV","SELECTOR_VISIBLE_ITEMS","PLACEMENT_TOP","PLACEMENT_TOPEND","PLACEMENT_BOTTOM","PLACEMENT_BOTTOMEND","PLACEMENT_RIGHT","PLACEMENT_LEFT","Default","offset","flip","boundary","reference","popperConfig","DefaultType","Dropdown","_element","_popper","_config","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","Data","setData","toggle","disabled","classList","contains","isActive","clearMenus","show","parent","getParentFromElement","relatedTarget","showEvent","EventHandler","trigger","defaultPrevented","Popper","TypeError","referenceElement","jquery","add","_getPopperConfig","documentElement","closest","concat","children","elem","on","focus","setAttribute","Manipulator","toggleClass","hide","hideEvent","destroy","dispose","removeData","off","update","scheduleUpdate","event","preventDefault","stopPropagation","constructor","getDataAttributes","SelectorEngine","next","_getPlacement","parentDropdown","placement","Boolean","_getOffset","fn","data","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","getData","jQueryInterface","each","button","type","key","toggles","find","i","len","length","context","clickEvent","dropdownMenu","target","tagName","remove","dataApiKeydownHandler","matches","prev","items","filter","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/modal.js b/js/dist/modal.js
index c7c81b1a55..476c02695f 100644
--- a/js/dist/modal.js
+++ b/js/dist/modal.js
@@ -213,8 +213,7 @@
var DATA_KEY = 'bs.modal';
var EVENT_KEY = "." + DATA_KEY;
var DATA_API_KEY = '.data-api';
- var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key
-
+ var ESCAPE_KEY = 'Escape';
var Default = {
backdrop: true,
keyboard: true,
@@ -239,7 +238,6 @@
var EVENT_MOUSEUP_DISMISS = "mouseup.dismiss" + EVENT_KEY;
var EVENT_MOUSEDOWN_DISMISS = "mousedown.dismiss" + EVENT_KEY;
var EVENT_CLICK_DATA_API = "click" + EVENT_KEY + DATA_API_KEY;
- var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';
var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';
var CLASS_NAME_BACKDROP = 'modal-backdrop';
var CLASS_NAME_OPEN = 'modal-open';
@@ -403,7 +401,7 @@
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default, {}, config);
+ config = _objectSpread2(_objectSpread2({}, Default), config);
typeCheckConfig(NAME, config, DefaultType);
return config;
};
@@ -426,10 +424,10 @@
this._element.setAttribute('aria-modal', true);
- if (this._dialog.classList.contains(CLASS_NAME_SCROLLABLE) && modalBody) {
+ this._element.scrollTop = 0;
+
+ if (modalBody) {
modalBody.scrollTop = 0;
- } else {
- this._element.scrollTop = 0;
}
if (transition) {
@@ -479,11 +477,11 @@
if (this._isShown) {
EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, function (event) {
- if (_this5._config.keyboard && event.which === ESCAPE_KEYCODE) {
+ if (_this5._config.keyboard && event.key === ESCAPE_KEY) {
event.preventDefault();
_this5.hide();
- } else if (!_this5._config.keyboard && event.which === ESCAPE_KEYCODE) {
+ } else if (!_this5._config.keyboard && event.key === ESCAPE_KEY) {
_this5._triggerBackdropTransition();
}
});
@@ -641,7 +639,7 @@
_proto._checkScrollbar = function _checkScrollbar() {
var rect = document.body.getBoundingClientRect();
- this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
+ this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;
this._scrollbarWidth = this._getScrollbarWidth();
};
@@ -720,7 +718,7 @@
return this.each(function () {
var data = Data.getData(this, DATA_KEY);
- var _config = _objectSpread2({}, Default, {}, Manipulator.getDataAttributes(this), {}, typeof config === 'object' && config ? config : {});
+ var _config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default), Manipulator.getDataAttributes(this)), typeof config === 'object' && config ? config : {});
if (!data) {
data = new Modal(this, _config);
@@ -787,7 +785,7 @@
var data = Data.getData(target, DATA_KEY);
if (!data) {
- var config = _objectSpread2({}, Manipulator.getDataAttributes(target), {}, Manipulator.getDataAttributes(this));
+ var config = _objectSpread2(_objectSpread2({}, Manipulator.getDataAttributes(target)), Manipulator.getDataAttributes(this));
data = new Modal(target, config);
}
diff --git a/js/dist/modal.js.map b/js/dist/modal.js.map
index 439496ca30..e84922ab23 100644
--- a/js/dist/modal.js.map
+++ b/js/dist/modal.js.map
@@ -1 +1 @@
-{"version":3,"file":"modal.js","sources":["../src/util/index.js","../src/modal.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, EVENT_FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if (this._dialog.classList.contains(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW)\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\n }\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._element)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n SelectorEngine.find(SELECTOR_STICKY_CONTENT)\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n SelectorEngine.find(`${SELECTOR_STICKY_CONTENT}`)\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal.jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal.jQueryInterface\n }\n}\n\nexport default Modal\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","trim","getElementFromSelector","document","querySelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEYCODE","Default","backdrop","keyboard","focus","show","DefaultType","EVENT_HIDE","EVENT_HIDE_PREVENTED","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API","CLASS_NAME_SCROLLABLE","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_SHOW","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_config","_getConfig","_element","_dialog","SelectorEngine","findOne","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_isTransitioning","_scrollbarWidth","Data","setData","toggle","relatedTarget","hide","classList","contains","showEvent","EventHandler","trigger","defaultPrevented","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","on","event","one","target","_showBackdrop","_showElement","preventDefault","hideEvent","transition","off","remove","_hideModal","dispose","htmlElement","removeData","handleUpdate","modalBody","Node","ELEMENT_NODE","appendChild","removeAttribute","setAttribute","scrollTop","add","_enforceFocus","transitionComplete","which","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","removeChild","callback","animate","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","modalTransitionDuration","isModalOverflowing","scrollHeight","documentElement","clientHeight","paddingLeft","paddingRight","rect","getBoundingClientRect","left","right","innerWidth","_getScrollbarWidth","find","actualPadding","calculatedPadding","Manipulator","setDataAttribute","actualMargin","marginRight","calculatedMargin","padding","getDataAttribute","removeDataAttribute","margin","scrollDiv","scrollbarWidth","width","clientWidth","jQueryInterface","each","data","getData","getDataAttributes","TypeError","getInstance","tagName","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"modal.js","sources":["../src/util/index.js","../src/modal.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEY = 'Escape'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element,\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n event => this.hide(event)\n )\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, EVENT_FOCUSIN)\n\n Data.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.scrollTop = 0\n\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW)\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\n }\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._element)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n SelectorEngine.find(SELECTOR_STICKY_CONTENT)\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n SelectorEngine.find(`${SELECTOR_STICKY_CONTENT}`)\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .modal to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal.jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal.jQueryInterface\n }\n}\n\nexport default Modal\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","trim","getElementFromSelector","document","querySelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEY","Default","backdrop","keyboard","focus","show","DefaultType","EVENT_HIDE","EVENT_HIDE_PREVENTED","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_SHOW","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_config","_getConfig","_element","_dialog","SelectorEngine","findOne","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_isTransitioning","_scrollbarWidth","Data","setData","toggle","relatedTarget","hide","classList","contains","showEvent","EventHandler","trigger","defaultPrevented","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","on","event","one","target","_showBackdrop","_showElement","preventDefault","hideEvent","transition","off","remove","_hideModal","dispose","htmlElement","removeData","handleUpdate","modalBody","Node","ELEMENT_NODE","appendChild","removeAttribute","setAttribute","scrollTop","add","_enforceFocus","transitionComplete","key","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","removeChild","callback","animate","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","modalTransitionDuration","isModalOverflowing","scrollHeight","documentElement","clientHeight","paddingLeft","paddingRight","rect","getBoundingClientRect","Math","round","left","right","innerWidth","_getScrollbarWidth","find","actualPadding","calculatedPadding","Manipulator","setDataAttribute","actualMargin","marginRight","calculatedMargin","padding","getDataAttribute","removeDataAttribute","margin","scrollDiv","scrollbarWidth","width","clientWidth","jQueryInterface","each","data","getData","getDataAttributes","TypeError","getInstance","tagName","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
diff --git a/js/dist/popover.js b/js/dist/popover.js
index 8aeae94ec7..747c4434e8 100644
--- a/js/dist/popover.js
+++ b/js/dist/popover.js
@@ -115,14 +115,14 @@
var CLASS_PREFIX = 'bs-popover';
var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
- var Default = _objectSpread2({}, Tooltip.Default, {
+ var Default = _objectSpread2(_objectSpread2({}, Tooltip.Default), {}, {
placement: 'right',
trigger: 'click',
content: '',
template: '<div class="popover" role="tooltip">' + '<div class="popover-arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
});
- var DefaultType = _objectSpread2({}, Tooltip.DefaultType, {
+ var DefaultType = _objectSpread2(_objectSpread2({}, Tooltip.DefaultType), {}, {
content: '(string|element|function)'
});
@@ -174,8 +174,7 @@
}
this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content);
- tip.classList.remove(CLASS_NAME_FADE);
- tip.classList.remove(CLASS_NAME_SHOW);
+ tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);
};
_proto._addAttachmentClass = function _addAttachmentClass(attachment) {
diff --git a/js/dist/popover.js.map b/js/dist/popover.js.map
index f66f019576..f852c68fd0 100644
--- a/js/dist/popover.js.map
+++ b/js/dist/popover.js.map
@@ -1 +1 @@
-{"version":3,"file":"popover.js","sources":["../src/util/index.js","../src/popover.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content)\n\n tip.classList.remove(CLASS_NAME_FADE)\n tip.classList.remove(CLASS_NAME_SHOW)\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover.jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover.jQueryInterface\n }\n}\n\nexport default Popover\n"],"names":["getjQuery","window","jQuery","document","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","CLASS_PREFIX","BSCLS_PREFIX_REGEX","RegExp","Default","Tooltip","placement","trigger","content","template","DefaultType","Event","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE","CLASS_NAME_SHOW","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","isWithContent","getTitle","_getContent","setContent","tip","getTipElement","setElementContent","SelectorEngine","findOne","call","element","classList","remove","_addAttachmentClass","attachment","add","getAttribute","config","_cleanTipClass","tabClass","match","length","map","token","trim","forEach","tClass","jQueryInterface","each","data","Data","getData","_config","test","setData","TypeError","getInstance","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"popover.js","sources":["../src/util/index.js","../src/popover.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport { getjQuery } from './util/index'\nimport Data from './dom/data'\nimport SelectorEngine from './dom/selector-engine'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"popover-arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content: '(string|element|function)'\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n setContent() {\n const tip = this.getTipElement()\n\n // we use append for html objects to maintain js events\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TITLE, tip), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n\n this.setElementContent(SelectorEngine.findOne(SELECTOR_CONTENT, tip), content)\n\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n Data.setData(this, DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Popover.jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover.jQueryInterface\n }\n}\n\nexport default Popover\n"],"names":["getjQuery","window","jQuery","document","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","CLASS_PREFIX","BSCLS_PREFIX_REGEX","RegExp","Default","Tooltip","placement","trigger","content","template","DefaultType","Event","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE","CLASS_NAME_SHOW","SELECTOR_TITLE","SELECTOR_CONTENT","Popover","isWithContent","getTitle","_getContent","setContent","tip","getTipElement","setElementContent","SelectorEngine","findOne","call","element","classList","remove","_addAttachmentClass","attachment","add","getAttribute","config","_cleanTipClass","tabClass","match","length","map","token","trim","forEach","tClass","jQueryInterface","each","data","Data","getData","_config","test","setData","TypeError","getInstance","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
diff --git a/js/dist/scrollspy.js b/js/dist/scrollspy.js
index b1114eb93f..09944c2093 100644
--- a/js/dist/scrollspy.js
+++ b/js/dist/scrollspy.js
@@ -277,9 +277,9 @@
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default, {}, typeof config === 'object' && config ? config : {});
+ config = _objectSpread2(_objectSpread2({}, Default), typeof config === 'object' && config ? config : {});
- if (typeof config.target !== 'string') {
+ if (typeof config.target !== 'string' && isElement(config.target)) {
var id = config.target.id;
if (!id) {
@@ -335,9 +335,7 @@
return;
}
- var offsetLength = this._offsets.length;
-
- for (var i = offsetLength; i--;) {
+ for (var i = this._offsets.length; i--;) {
var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
if (isActiveTarget) {
@@ -358,7 +356,7 @@
var link = SelectorEngine.findOne(queries.join(','));
if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {
- SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, SelectorEngine.closest(link, SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE);
+ SelectorEngine.findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN)).classList.add(CLASS_NAME_ACTIVE);
link.classList.add(CLASS_NAME_ACTIVE);
} else {
// Set triggered link as active
diff --git a/js/dist/scrollspy.js.map b/js/dist/scrollspy.js.map
index e37bf4bb9e..90b0967d70 100644
--- a/js/dist/scrollspy.js.map
+++ b/js/dist/scrollspy.js.map
@@ -1 +1 @@
-{"version":3,"file":"scrollspy.js","sources":["../src/util/index.js","../src/scrollspy.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n getSelectorFromElement,\n getUID,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = SelectorEngine.find(this._selector)\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(SELECTOR_DROPDOWN_TOGGLE, SelectorEngine.closest(link, SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_ACTIVE)\n\n SelectorEngine\n .parents(link, SELECTOR_NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, SELECTOR_NAV_LINKS)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy.jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy.jQueryInterface\n }\n}\n\nexport default ScrollSpy\n"],"names":["MAX_UID","toType","obj","undefined","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","getjQuery","window","jQuery","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Default","offset","method","target","DefaultType","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_element","_scrollElement","tagName","_config","_getConfig","_selector","_offsets","_targets","_activeTarget","_scrollHeight","EventHandler","on","event","_process","refresh","Data","setData","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","SelectorEngine","find","map","targetSelector","findOne","targetBCR","getBoundingClientRect","width","height","Manipulator","top","filter","item","sort","a","b","push","dispose","removeData","off","id","pageYOffset","scrollTop","scrollHeight","max","documentElement","_getOffsetHeight","innerHeight","maxScroll","length","_activate","_clear","offsetLength","i","isActiveTarget","queries","split","link","join","classList","contains","closest","add","parents","listGroup","prev","navItem","children","trigger","relatedTarget","node","remove","jQueryInterface","each","data","getData","TypeError","getInstance","spy","getDataAttributes","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA;;;;;;EAOA,IAAMA,OAAO,GAAG,OAAhB;;EAKA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAAAC,GAAG,EAAI;EACpB,MAAIA,GAAG,KAAK,IAAR,IAAgBA,GAAG,KAAKC,SAA5B,EAAuC;EACrC,gBAAUD,GAAV;EACD;;EAED,SAAO,GAAGE,QAAH,CAAYC,IAAZ,CAAiBH,GAAjB,EAAsBI,KAAtB,CAA4B,aAA5B,EAA2C,CAA3C,EAA8CC,WAA9C,EAAP;EACD,CAND;EAQA;;;;;;;EAMA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAAAC,MAAM,EAAI;EACvB,KAAG;EACDA,IAAAA,MAAM,IAAI,CAAC,EAAEC,IAAI,CAACC,MAAL,KAAgBX,OAAlB,CAAX,CADC;EAEF,GAFD,QAESY,QAAQ,CAACC,cAAT,CAAwBJ,MAAxB,CAFT;;EAIA,SAAOA,MAAP;EACD,CAND;;EAQA,IAAMK,WAAW,GAAG,SAAdA,WAAc,CAAAC,OAAO,EAAI;EAC7B,MAAIC,QAAQ,GAAGD,OAAO,CAACE,YAAR,CAAqB,aAArB,CAAf;;EAEA,MAAI,CAACD,QAAD,IAAaA,QAAQ,KAAK,GAA9B,EAAmC;EACjC,QAAME,QAAQ,GAAGH,OAAO,CAACE,YAAR,CAAqB,MAArB,CAAjB;EAEAD,IAAAA,QAAQ,GAAGE,QAAQ,IAAIA,QAAQ,KAAK,GAAzB,GAA+BA,QAAQ,CAACC,IAAT,EAA/B,GAAiD,IAA5D;EACD;;EAED,SAAOH,QAAP;EACD,CAVD;;EAYA,IAAMI,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAAL,OAAO,EAAI;EACxC,MAAMC,QAAQ,GAAGF,WAAW,CAACC,OAAD,CAA5B;;EAEA,MAAIC,QAAJ,EAAc;EACZ,WAAOJ,QAAQ,CAACS,aAAT,CAAuBL,QAAvB,IAAmCA,QAAnC,GAA8C,IAArD;EACD;;EAED,SAAO,IAAP;EACD,CARD;;EA8CA,IAAMM,SAAS,GAAG,SAAZA,SAAY,CAAApB,GAAG;EAAA,SAAI,CAACA,GAAG,CAAC,CAAD,CAAH,IAAUA,GAAX,EAAgBqB,QAApB;EAAA,CAArB;;EAmBA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACC,aAAD,EAAgBC,MAAhB,EAAwBC,WAAxB,EAAwC;EAC9DC,EAAAA,MAAM,CAACC,IAAP,CAAYF,WAAZ,EACGG,OADH,CACW,UAAAC,QAAQ,EAAI;EACnB,QAAMC,aAAa,GAAGL,WAAW,CAACI,QAAD,CAAjC;EACA,QAAME,KAAK,GAAGP,MAAM,CAACK,QAAD,CAApB;EACA,QAAMG,SAAS,GAAGD,KAAK,IAAIX,SAAS,CAACW,KAAD,CAAlB,GAChB,SADgB,GAEhBhC,MAAM,CAACgC,KAAD,CAFR;;EAIA,QAAI,CAAC,IAAIE,MAAJ,CAAWH,aAAX,EAA0BI,IAA1B,CAA+BF,SAA/B,CAAL,EAAgD;EAC9C,YAAM,IAAIG,KAAJ,CACDZ,aAAa,CAACa,WAAd,EAAH,yBACWP,QADX,2BACuCG,SADvC,sCAEsBF,aAFtB,SADI,CAAN;EAID;EACF,GAdH;EAeD,CAhBD;;EA8DA,IAAMO,SAAS,GAAG,SAAZA,SAAY,GAAM;EAAA,gBACHC,MADG;EAAA,MACdC,MADc,WACdA,MADc;;EAGtB,MAAIA,MAAM,IAAI,CAAC7B,QAAQ,CAAC8B,IAAT,CAAcC,YAAd,CAA2B,gBAA3B,CAAf,EAA6D;EAC3D,WAAOF,MAAP;EACD;;EAED,SAAO,IAAP;EACD,CARD;;EC3JA;;;;;;EAMA,IAAMG,IAAI,GAAG,WAAb;EACA,IAAMC,OAAO,GAAG,OAAhB;EACA,IAAMC,QAAQ,GAAG,cAAjB;EACA,IAAMC,SAAS,SAAOD,QAAtB;EACA,IAAME,YAAY,GAAG,WAArB;EAEA,IAAMC,OAAO,GAAG;EACdC,EAAAA,MAAM,EAAE,EADM;EAEdC,EAAAA,MAAM,EAAE,MAFM;EAGdC,EAAAA,MAAM,EAAE;EAHM,CAAhB;EAMA,IAAMC,WAAW,GAAG;EAClBH,EAAAA,MAAM,EAAE,QADU;EAElBC,EAAAA,MAAM,EAAE,QAFU;EAGlBC,EAAAA,MAAM,EAAE;EAHU,CAApB;EAMA,IAAME,cAAc,gBAAcP,SAAlC;EACA,IAAMQ,YAAY,cAAYR,SAA9B;EACA,IAAMS,mBAAmB,YAAUT,SAAV,GAAsBC,YAA/C;EAEA,IAAMS,wBAAwB,GAAG,eAAjC;EACA,IAAMC,iBAAiB,GAAG,QAA1B;EAEA,IAAMC,iBAAiB,GAAG,qBAA1B;EACA,IAAMC,uBAAuB,GAAG,mBAAhC;EACA,IAAMC,kBAAkB,GAAG,WAA3B;EACA,IAAMC,kBAAkB,GAAG,WAA3B;EACA,IAAMC,mBAAmB,GAAG,kBAA5B;EACA,IAAMC,iBAAiB,GAAG,WAA1B;EACA,IAAMC,wBAAwB,GAAG,kBAAjC;EAEA,IAAMC,aAAa,GAAG,QAAtB;EACA,IAAMC,eAAe,GAAG,UAAxB;EAEA;;;;;;MAMMC;EACJ,qBAAYrD,OAAZ,EAAqBW,MAArB,EAA6B;EAAA;;EAC3B,SAAK2C,QAAL,GAAgBtD,OAAhB;EACA,SAAKuD,cAAL,GAAsBvD,OAAO,CAACwD,OAAR,KAAoB,MAApB,GAA6B/B,MAA7B,GAAsCzB,OAA5D;EACA,SAAKyD,OAAL,GAAe,KAAKC,UAAL,CAAgB/C,MAAhB,CAAf;EACA,SAAKgD,SAAL,GAAoB,KAAKF,OAAL,CAAapB,MAAhB,SAA0BS,kBAA1B,UACQ,KAAKW,OAAL,CAAapB,MADrB,SAC+BW,mBAD/B,WAEQ,KAAKS,OAAL,CAAapB,MAFrB,UAEgCK,wBAFhC,CAAjB;EAGA,SAAKkB,QAAL,GAAgB,EAAhB;EACA,SAAKC,QAAL,GAAgB,EAAhB;EACA,SAAKC,aAAL,GAAqB,IAArB;EACA,SAAKC,aAAL,GAAqB,CAArB;EAEAC,IAAAA,YAAY,CAACC,EAAb,CAAgB,KAAKV,cAArB,EAAqCf,YAArC,EAAmD,UAAA0B,KAAK;EAAA,aAAI,KAAI,CAACC,QAAL,CAAcD,KAAd,CAAJ;EAAA,KAAxD;EAEA,SAAKE,OAAL;;EACA,SAAKD,QAAL;;EAEAE,IAAAA,IAAI,CAACC,OAAL,CAAatE,OAAb,EAAsB+B,QAAtB,EAAgC,IAAhC;EACD;;;;;EAYD;WAEAqC,UAAA,mBAAU;EAAA;;EACR,QAAMG,UAAU,GAAG,KAAKhB,cAAL,KAAwB,KAAKA,cAAL,CAAoB9B,MAA5C,GACjB0B,aADiB,GAEjBC,eAFF;EAIA,QAAMoB,YAAY,GAAG,KAAKf,OAAL,CAAarB,MAAb,KAAwB,MAAxB,GACnBmC,UADmB,GAEnB,KAAKd,OAAL,CAAarB,MAFf;EAIA,QAAMqC,UAAU,GAAGD,YAAY,KAAKpB,eAAjB,GACjB,KAAKsB,aAAL,EADiB,GAEjB,CAFF;EAIA,SAAKd,QAAL,GAAgB,EAAhB;EACA,SAAKC,QAAL,GAAgB,EAAhB;EAEA,SAAKE,aAAL,GAAqB,KAAKY,gBAAL,EAArB;EAEA,QAAMC,OAAO,GAAGC,cAAc,CAACC,IAAf,CAAoB,KAAKnB,SAAzB,CAAhB;EAEAiB,IAAAA,OAAO,CACJG,GADH,CACO,UAAA/E,OAAO,EAAI;EACd,UAAIqC,MAAJ;EACA,UAAM2C,cAAc,GAAG3E,sBAAsB,CAACL,OAAD,CAA7C;;EAEA,UAAIgF,cAAJ,EAAoB;EAClB3C,QAAAA,MAAM,GAAGwC,cAAc,CAACI,OAAf,CAAuBD,cAAvB,CAAT;EACD;;EAED,UAAI3C,MAAJ,EAAY;EACV,YAAM6C,SAAS,GAAG7C,MAAM,CAAC8C,qBAAP,EAAlB;;EACA,YAAID,SAAS,CAACE,KAAV,IAAmBF,SAAS,CAACG,MAAjC,EAAyC;EACvC,iBAAO,CACLC,WAAW,CAACd,YAAD,CAAX,CAA0BnC,MAA1B,EAAkCkD,GAAlC,GAAwCd,UADnC,EAELO,cAFK,CAAP;EAID;EACF;;EAED,aAAO,IAAP;EACD,KApBH,EAqBGQ,MArBH,CAqBU,UAAAC,IAAI;EAAA,aAAIA,IAAJ;EAAA,KArBd,EAsBGC,IAtBH,CAsBQ,UAACC,CAAD,EAAIC,CAAJ;EAAA,aAAUD,CAAC,CAAC,CAAD,CAAD,GAAOC,CAAC,CAAC,CAAD,CAAlB;EAAA,KAtBR,EAuBG7E,OAvBH,CAuBW,UAAA0E,IAAI,EAAI;EACf,MAAA,MAAI,CAAC7B,QAAL,CAAciC,IAAd,CAAmBJ,IAAI,CAAC,CAAD,CAAvB;;EACA,MAAA,MAAI,CAAC5B,QAAL,CAAcgC,IAAd,CAAmBJ,IAAI,CAAC,CAAD,CAAvB;EACD,KA1BH;EA2BD;;WAEDK,UAAA,mBAAU;EACRzB,IAAAA,IAAI,CAAC0B,UAAL,CAAgB,KAAKzC,QAArB,EAA+BvB,QAA/B;EACAiC,IAAAA,YAAY,CAACgC,GAAb,CAAiB,KAAKzC,cAAtB,EAAsCvB,SAAtC;EAEA,SAAKsB,QAAL,GAAgB,IAAhB;EACA,SAAKC,cAAL,GAAsB,IAAtB;EACA,SAAKE,OAAL,GAAe,IAAf;EACA,SAAKE,SAAL,GAAiB,IAAjB;EACA,SAAKC,QAAL,GAAgB,IAAhB;EACA,SAAKC,QAAL,GAAgB,IAAhB;EACA,SAAKC,aAAL,GAAqB,IAArB;EACA,SAAKC,aAAL,GAAqB,IAArB;EACD;;;WAIDL,aAAA,oBAAW/C,MAAX,EAAmB;EACjBA,IAAAA,MAAM,sBACDuB,OADC,MAED,OAAOvB,MAAP,KAAkB,QAAlB,IAA8BA,MAA9B,GAAuCA,MAAvC,GAAgD,EAF/C,CAAN;;EAKA,QAAI,OAAOA,MAAM,CAAC0B,MAAd,KAAyB,QAA7B,EAAuC;EAAA,UAC/B4D,EAD+B,GACxBtF,MAAM,CAAC0B,MADiB,CAC/B4D,EAD+B;;EAErC,UAAI,CAACA,EAAL,EAAS;EACPA,QAAAA,EAAE,GAAGxG,MAAM,CAACoC,IAAD,CAAX;EACAlB,QAAAA,MAAM,CAAC0B,MAAP,CAAc4D,EAAd,GAAmBA,EAAnB;EACD;;EAEDtF,MAAAA,MAAM,CAAC0B,MAAP,SAAoB4D,EAApB;EACD;;EAEDxF,IAAAA,eAAe,CAACoB,IAAD,EAAOlB,MAAP,EAAe2B,WAAf,CAAf;EAEA,WAAO3B,MAAP;EACD;;WAED+D,gBAAA,yBAAgB;EACd,WAAO,KAAKnB,cAAL,KAAwB9B,MAAxB,GACL,KAAK8B,cAAL,CAAoB2C,WADf,GAEL,KAAK3C,cAAL,CAAoB4C,SAFtB;EAGD;;WAEDxB,mBAAA,4BAAmB;EACjB,WAAO,KAAKpB,cAAL,CAAoB6C,YAApB,IAAoCzG,IAAI,CAAC0G,GAAL,CACzCxG,QAAQ,CAAC8B,IAAT,CAAcyE,YAD2B,EAEzCvG,QAAQ,CAACyG,eAAT,CAAyBF,YAFgB,CAA3C;EAID;;WAEDG,mBAAA,4BAAmB;EACjB,WAAO,KAAKhD,cAAL,KAAwB9B,MAAxB,GACLA,MAAM,CAAC+E,WADF,GAEL,KAAKjD,cAAL,CAAoB4B,qBAApB,GAA4CE,MAF9C;EAGD;;WAEDlB,WAAA,oBAAW;EACT,QAAMgC,SAAS,GAAG,KAAKzB,aAAL,KAAuB,KAAKjB,OAAL,CAAatB,MAAtD;;EACA,QAAMiE,YAAY,GAAG,KAAKzB,gBAAL,EAArB;;EACA,QAAM8B,SAAS,GAAG,KAAKhD,OAAL,CAAatB,MAAb,GAChBiE,YADgB,GAEhB,KAAKG,gBAAL,EAFF;;EAIA,QAAI,KAAKxC,aAAL,KAAuBqC,YAA3B,EAAyC;EACvC,WAAKhC,OAAL;EACD;;EAED,QAAI+B,SAAS,IAAIM,SAAjB,EAA4B;EAC1B,UAAMpE,MAAM,GAAG,KAAKwB,QAAL,CAAc,KAAKA,QAAL,CAAc6C,MAAd,GAAuB,CAArC,CAAf;;EAEA,UAAI,KAAK5C,aAAL,KAAuBzB,MAA3B,EAAmC;EACjC,aAAKsE,SAAL,CAAetE,MAAf;EACD;;EAED;EACD;;EAED,QAAI,KAAKyB,aAAL,IAAsBqC,SAAS,GAAG,KAAKvC,QAAL,CAAc,CAAd,CAAlC,IAAsD,KAAKA,QAAL,CAAc,CAAd,IAAmB,CAA7E,EAAgF;EAC9E,WAAKE,aAAL,GAAqB,IAArB;;EACA,WAAK8C,MAAL;;EACA;EACD;;EAED,QAAMC,YAAY,GAAG,KAAKjD,QAAL,CAAc8C,MAAnC;;EACA,SAAK,IAAII,CAAC,GAAGD,YAAb,EAA2BC,CAAC,EAA5B,GAAiC;EAC/B,UAAMC,cAAc,GAAG,KAAKjD,aAAL,KAAuB,KAAKD,QAAL,CAAciD,CAAd,CAAvB,IACnBX,SAAS,IAAI,KAAKvC,QAAL,CAAckD,CAAd,CADM,KAElB,OAAO,KAAKlD,QAAL,CAAckD,CAAC,GAAG,CAAlB,CAAP,KAAgC,WAAhC,IACGX,SAAS,GAAG,KAAKvC,QAAL,CAAckD,CAAC,GAAG,CAAlB,CAHG,CAAvB;;EAKA,UAAIC,cAAJ,EAAoB;EAClB,aAAKJ,SAAL,CAAe,KAAK9C,QAAL,CAAciD,CAAd,CAAf;EACD;EACF;EACF;;WAEDH,YAAA,mBAAUtE,MAAV,EAAkB;EAChB,SAAKyB,aAAL,GAAqBzB,MAArB;;EAEA,SAAKuE,MAAL;;EAEA,QAAMI,OAAO,GAAG,KAAKrD,SAAL,CAAesD,KAAf,CAAqB,GAArB,EACblC,GADa,CACT,UAAA9E,QAAQ;EAAA,aAAOA,QAAP,uBAAgCoC,MAAhC,YAA4CpC,QAA5C,gBAA8DoC,MAA9D;EAAA,KADC,CAAhB;;EAGA,QAAM6E,IAAI,GAAGrC,cAAc,CAACI,OAAf,CAAuB+B,OAAO,CAACG,IAAR,CAAa,GAAb,CAAvB,CAAb;;EAEA,QAAID,IAAI,CAACE,SAAL,CAAeC,QAAf,CAAwB3E,wBAAxB,CAAJ,EAAuD;EACrDmC,MAAAA,cAAc,CACXI,OADH,CACW/B,wBADX,EACqC2B,cAAc,CAACyC,OAAf,CAAuBJ,IAAvB,EAA6BjE,iBAA7B,CADrC,EAEGmE,SAFH,CAEaG,GAFb,CAEiB5E,iBAFjB;EAIAuE,MAAAA,IAAI,CAACE,SAAL,CAAeG,GAAf,CAAmB5E,iBAAnB;EACD,KAND,MAMO;EACL;EACAuE,MAAAA,IAAI,CAACE,SAAL,CAAeG,GAAf,CAAmB5E,iBAAnB;EAEAkC,MAAAA,cAAc,CACX2C,OADH,CACWN,IADX,EACiBrE,uBADjB,EAEG9B,OAFH,CAEW,UAAA0G,SAAS,EAAI;EACpB;EACA;EACA5C,QAAAA,cAAc,CAAC6C,IAAf,CAAoBD,SAApB,EAAkC3E,kBAAlC,UAAyDE,mBAAzD,EACGjC,OADH,CACW,UAAA0E,IAAI;EAAA,iBAAIA,IAAI,CAAC2B,SAAL,CAAeG,GAAf,CAAmB5E,iBAAnB,CAAJ;EAAA,SADf,EAHoB;;EAOpBkC,QAAAA,cAAc,CAAC6C,IAAf,CAAoBD,SAApB,EAA+B1E,kBAA/B,EACGhC,OADH,CACW,UAAA4G,OAAO,EAAI;EAClB9C,UAAAA,cAAc,CAAC+C,QAAf,CAAwBD,OAAxB,EAAiC7E,kBAAjC,EACG/B,OADH,CACW,UAAA0E,IAAI;EAAA,mBAAIA,IAAI,CAAC2B,SAAL,CAAeG,GAAf,CAAmB5E,iBAAnB,CAAJ;EAAA,WADf;EAED,SAJH;EAKD,OAdH;EAeD;;EAEDqB,IAAAA,YAAY,CAAC6D,OAAb,CAAqB,KAAKtE,cAA1B,EAA0ChB,cAA1C,EAA0D;EACxDuF,MAAAA,aAAa,EAAEzF;EADyC,KAA1D;EAGD;;WAEDuE,SAAA,kBAAS;EACP/B,IAAAA,cAAc,CAACC,IAAf,CAAoB,KAAKnB,SAAzB,EACG6B,MADH,CACU,UAAAuC,IAAI;EAAA,aAAIA,IAAI,CAACX,SAAL,CAAeC,QAAf,CAAwB1E,iBAAxB,CAAJ;EAAA,KADd,EAEG5B,OAFH,CAEW,UAAAgH,IAAI;EAAA,aAAIA,IAAI,CAACX,SAAL,CAAeY,MAAf,CAAsBrF,iBAAtB,CAAJ;EAAA,KAFf;EAGD;;;cAIMsF,kBAAP,yBAAuBtH,MAAvB,EAA+B;EAC7B,WAAO,KAAKuH,IAAL,CAAU,YAAY;EAC3B,UAAIC,IAAI,GAAG9D,IAAI,CAAC+D,OAAL,CAAa,IAAb,EAAmBrG,QAAnB,CAAX;;EACA,UAAM0B,OAAO,GAAG,OAAO9C,MAAP,KAAkB,QAAlB,IAA8BA,MAA9C;;EAEA,UAAI,CAACwH,IAAL,EAAW;EACTA,QAAAA,IAAI,GAAG,IAAI9E,SAAJ,CAAc,IAAd,EAAoBI,OAApB,CAAP;EACD;;EAED,UAAI,OAAO9C,MAAP,KAAkB,QAAtB,EAAgC;EAC9B,YAAI,OAAOwH,IAAI,CAACxH,MAAD,CAAX,KAAwB,WAA5B,EAAyC;EACvC,gBAAM,IAAI0H,SAAJ,wBAAkC1H,MAAlC,QAAN;EACD;;EAEDwH,QAAAA,IAAI,CAACxH,MAAD,CAAJ;EACD;EACF,KAfM,CAAP;EAgBD;;cAEM2H,cAAP,qBAAmBtI,OAAnB,EAA4B;EAC1B,WAAOqE,IAAI,CAAC+D,OAAL,CAAapI,OAAb,EAAsB+B,QAAtB,CAAP;EACD;;;;0BAlOoB;EACnB,aAAOD,OAAP;EACD;;;0BAEoB;EACnB,aAAOI,OAAP;EACD;;;;;EA+NH;;;;;;;EAMA8B,YAAY,CAACC,EAAb,CAAgBxC,MAAhB,EAAwBgB,mBAAxB,EAA6C,YAAM;EACjDoC,EAAAA,cAAc,CAACC,IAAf,CAAoBlC,iBAApB,EACG7B,OADH,CACW,UAAAwH,GAAG;EAAA,WAAI,IAAIlF,SAAJ,CAAckF,GAAd,EAAmBjD,WAAW,CAACkD,iBAAZ,CAA8BD,GAA9B,CAAnB,CAAJ;EAAA,GADd;EAED,CAHD;EAKA,IAAME,CAAC,GAAGjH,SAAS,EAAnB;EAEA;;;;;;EAKA;;EACA,IAAIiH,CAAJ,EAAO;EACL,MAAMC,kBAAkB,GAAGD,CAAC,CAACE,EAAF,CAAK9G,IAAL,CAA3B;EACA4G,EAAAA,CAAC,CAACE,EAAF,CAAK9G,IAAL,IAAawB,SAAS,CAAC4E,eAAvB;EACAQ,EAAAA,CAAC,CAACE,EAAF,CAAK9G,IAAL,EAAW+G,WAAX,GAAyBvF,SAAzB;;EACAoF,EAAAA,CAAC,CAACE,EAAF,CAAK9G,IAAL,EAAWgH,UAAX,GAAwB,YAAM;EAC5BJ,IAAAA,CAAC,CAACE,EAAF,CAAK9G,IAAL,IAAa6G,kBAAb;EACA,WAAOrF,SAAS,CAAC4E,eAAjB;EACD,GAHD;EAID;;;;;;;;"} \ No newline at end of file
+{"version":3,"file":"scrollspy.js","sources":["../src/util/index.js","../src/scrollspy.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n getSelectorFromElement,\n getUID,\n isElement,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst Default = {\n offset: 10,\n method: 'auto',\n target: ''\n}\n\nconst DefaultType = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} .${CLASS_NAME_DROPDOWN_ITEM}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n EventHandler.on(this._scrollElement, EVENT_SCROLL, event => this._process(event))\n\n this.refresh()\n this._process()\n\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window ?\n METHOD_OFFSET :\n METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod :\n this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION ?\n this._getScrollTop() :\n 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = SelectorEngine.find(this._selector)\n\n targets\n .map(element => {\n let target\n const targetSelector = getSelectorFromElement(element)\n\n if (targetSelector) {\n target = SelectorEngine.findOne(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n return [\n Manipulator[offsetMethod](target).top + offsetBase,\n targetSelector\n ]\n }\n }\n\n return null\n })\n .filter(item => item)\n .sort((a, b) => a[0] - b[0])\n .forEach(item => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n EventHandler.off(this._scrollElement, EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string' && isElement(config.target)) {\n let { id } = config.target\n if (!id) {\n id = getUID(NAME)\n config.target.id = id\n }\n\n config.target = `#${id}`\n }\n\n typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset :\n this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight :\n this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector.split(',')\n .map(selector => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const link = SelectorEngine.findOne(queries.join(','))\n\n if (link.classList.contains(CLASS_NAME_DROPDOWN_ITEM)) {\n SelectorEngine\n .findOne(SELECTOR_DROPDOWN_TOGGLE, link.closest(SELECTOR_DROPDOWN))\n .classList.add(CLASS_NAME_ACTIVE)\n\n link.classList.add(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n link.classList.add(CLASS_NAME_ACTIVE)\n\n SelectorEngine\n .parents(link, SELECTOR_NAV_LIST_GROUP)\n .forEach(listGroup => {\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n SelectorEngine.prev(listGroup, `${SELECTOR_NAV_LINKS}, ${SELECTOR_LIST_ITEMS}`)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n\n // Handle special case when .nav-link is inside .nav-item\n SelectorEngine.prev(listGroup, SELECTOR_NAV_ITEMS)\n .forEach(navItem => {\n SelectorEngine.children(navItem, SELECTOR_NAV_LINKS)\n .forEach(item => item.classList.add(CLASS_NAME_ACTIVE))\n })\n })\n }\n\n EventHandler.trigger(this._scrollElement, EVENT_ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n SelectorEngine.find(this._selector)\n .filter(node => node.classList.contains(CLASS_NAME_ACTIVE))\n .forEach(node => node.classList.remove(CLASS_NAME_ACTIVE))\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(window, EVENT_LOAD_DATA_API, () => {\n SelectorEngine.find(SELECTOR_DATA_SPY)\n .forEach(spy => new ScrollSpy(spy, Manipulator.getDataAttributes(spy)))\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = ScrollSpy.jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy.jQueryInterface\n }\n}\n\nexport default ScrollSpy\n"],"names":["MAX_UID","toType","obj","undefined","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getSelector","element","selector","getAttribute","hrefAttr","trim","getSelectorFromElement","querySelector","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","getjQuery","window","jQuery","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","Default","offset","method","target","DefaultType","EVENT_ACTIVATE","EVENT_SCROLL","EVENT_LOAD_DATA_API","CLASS_NAME_DROPDOWN_ITEM","CLASS_NAME_ACTIVE","SELECTOR_DATA_SPY","SELECTOR_NAV_LIST_GROUP","SELECTOR_NAV_LINKS","SELECTOR_NAV_ITEMS","SELECTOR_LIST_ITEMS","SELECTOR_DROPDOWN","SELECTOR_DROPDOWN_TOGGLE","METHOD_OFFSET","METHOD_POSITION","ScrollSpy","_element","_scrollElement","tagName","_config","_getConfig","_selector","_offsets","_targets","_activeTarget","_scrollHeight","EventHandler","on","event","_process","refresh","Data","setData","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","SelectorEngine","find","map","targetSelector","findOne","targetBCR","getBoundingClientRect","width","height","Manipulator","top","filter","item","sort","a","b","push","dispose","removeData","off","id","pageYOffset","scrollTop","scrollHeight","max","documentElement","_getOffsetHeight","innerHeight","maxScroll","length","_activate","_clear","i","isActiveTarget","queries","split","link","join","classList","contains","closest","add","parents","listGroup","prev","navItem","children","trigger","relatedTarget","node","remove","jQueryInterface","each","data","getData","TypeError","getInstance","spy","getDataAttributes","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
diff --git a/js/dist/tab.js b/js/dist/tab.js
index 1740b0f703..b0fd4dd8b0 100644
--- a/js/dist/tab.js
+++ b/js/dist/tab.js
@@ -167,7 +167,8 @@
var previous;
var target = getElementFromSelector(this._element);
- var listElement = SelectorEngine.closest(this._element, SELECTOR_NAV_LIST_GROUP);
+
+ var listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP);
if (listElement) {
var itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE;
@@ -263,7 +264,7 @@
}
if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {
- var dropdownElement = SelectorEngine.closest(element, SELECTOR_DROPDOWN);
+ var dropdownElement = element.closest(SELECTOR_DROPDOWN);
if (dropdownElement) {
SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE).forEach(function (dropdown) {
diff --git a/js/dist/tab.js.map b/js/dist/tab.js.map
index 223372788b..31365fde9d 100644
--- a/js/dist/tab.js.map
+++ b/js/dist/tab.js.map
@@ -1 +1 @@
-{"version":3,"file":"tab.js","sources":["../src/util/index.js","../src/tab.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if ((this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = SelectorEngine.closest(this._element, SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = SelectorEngine.find(itemSelector, listElement)\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, EVENT_HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n (hideEvent !== null && hideEvent.defaultPrevented)) {\n return\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(SELECTOR_ACTIVE_UL, container) :\n SelectorEngine.children(container, SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(CLASS_NAME_FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = SelectorEngine.closest(element, SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab.jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab.jQueryInterface\n }\n}\n\nexport default Tab\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","getSelector","element","selector","getAttribute","hrefAttr","trim","getElementFromSelector","document","querySelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","CLASS_NAME_DROPDOWN_MENU","CLASS_NAME_ACTIVE","CLASS_NAME_DISABLED","CLASS_NAME_FADE","CLASS_NAME_SHOW","SELECTOR_DROPDOWN","SELECTOR_NAV_LIST_GROUP","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","SELECTOR_DATA_TOGGLE","SELECTOR_DROPDOWN_TOGGLE","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","_element","Data","setData","show","parentNode","nodeType","Node","ELEMENT_NODE","classList","contains","previous","target","listElement","SelectorEngine","closest","itemSelector","nodeName","find","length","hideEvent","EventHandler","trigger","relatedTarget","showEvent","defaultPrevented","_activate","complete","dispose","removeData","container","callback","activeElements","children","active","isTransitioning","_transitionComplete","remove","one","dropdownChild","findOne","setAttribute","add","dropdownElement","forEach","dropdown","jQueryInterface","config","each","data","getData","TypeError","getInstance","on","event","preventDefault","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":"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"} \ No newline at end of file
+{"version":3,"file":"tab.js","sources":["../src/util/index.js","../src/tab.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n reflow\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_MENU = 'dropdown-menu'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_UL = ':scope > li > .active'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\nconst SELECTOR_DROPDOWN_ACTIVE_CHILD = ':scope > .dropdown-menu .active'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n\n Data.setData(this._element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if ((this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) ||\n this._element.classList.contains(CLASS_NAME_DISABLED)) {\n return\n }\n\n let previous\n const target = getElementFromSelector(this._element)\n const listElement = this._element.closest(SELECTOR_NAV_LIST_GROUP)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? SELECTOR_ACTIVE_UL : SELECTOR_ACTIVE\n previous = SelectorEngine.find(itemSelector, listElement)\n previous = previous[previous.length - 1]\n }\n\n let hideEvent = null\n\n if (previous) {\n hideEvent = EventHandler.trigger(previous, EVENT_HIDE, {\n relatedTarget: this._element\n })\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget: previous\n })\n\n if (showEvent.defaultPrevented ||\n (hideEvent !== null && hideEvent.defaultPrevented)) {\n return\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n EventHandler.trigger(previous, EVENT_HIDDEN, {\n relatedTarget: this._element\n })\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget: previous\n })\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n Data.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL') ?\n SelectorEngine.find(SELECTOR_ACTIVE_UL, container) :\n SelectorEngine.children(container, SELECTOR_ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback &&\n (active && active.classList.contains(CLASS_NAME_FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = getTransitionDurationFromElement(active)\n active.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.one(active, TRANSITION_END, complete)\n emulateTransitionEnd(active, transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n active.classList.remove(CLASS_NAME_ACTIVE)\n\n const dropdownChild = SelectorEngine.findOne(SELECTOR_DROPDOWN_ACTIVE_CHILD, active.parentNode)\n\n if (dropdownChild) {\n dropdownChild.classList.remove(CLASS_NAME_ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n element.classList.add(CLASS_NAME_ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n reflow(element)\n\n if (element.classList.contains(CLASS_NAME_FADE)) {\n element.classList.add(CLASS_NAME_SHOW)\n }\n\n if (element.parentNode && element.parentNode.classList.contains(CLASS_NAME_DROPDOWN_MENU)) {\n const dropdownElement = element.closest(SELECTOR_DROPDOWN)\n\n if (dropdownElement) {\n SelectorEngine.find(SELECTOR_DROPDOWN_TOGGLE)\n .forEach(dropdown => dropdown.classList.add(CLASS_NAME_ACTIVE))\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const data = Data.getData(this, DATA_KEY) || new Tab(this)\n data.show()\n})\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tab to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tab.jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab.jQueryInterface\n }\n}\n\nexport default Tab\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","getSelector","element","selector","getAttribute","hrefAttr","trim","getElementFromSelector","document","querySelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_CLICK_DATA_API","CLASS_NAME_DROPDOWN_MENU","CLASS_NAME_ACTIVE","CLASS_NAME_DISABLED","CLASS_NAME_FADE","CLASS_NAME_SHOW","SELECTOR_DROPDOWN","SELECTOR_NAV_LIST_GROUP","SELECTOR_ACTIVE","SELECTOR_ACTIVE_UL","SELECTOR_DATA_TOGGLE","SELECTOR_DROPDOWN_TOGGLE","SELECTOR_DROPDOWN_ACTIVE_CHILD","Tab","_element","Data","setData","show","parentNode","nodeType","Node","ELEMENT_NODE","classList","contains","previous","target","listElement","closest","itemSelector","nodeName","SelectorEngine","find","length","hideEvent","EventHandler","trigger","relatedTarget","showEvent","defaultPrevented","_activate","complete","dispose","removeData","container","callback","activeElements","children","active","isTransitioning","_transitionComplete","remove","one","dropdownChild","findOne","setAttribute","add","dropdownElement","forEach","dropdown","jQueryInterface","config","each","data","getData","TypeError","getInstance","on","event","preventDefault","$","JQUERY_NO_CONFLICT","fn","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 6355bcf01e..e1756ab562 100644
--- a/js/dist/toast.js
+++ b/js/dist/toast.js
@@ -310,7 +310,7 @@
;
_proto._getConfig = function _getConfig(config) {
- config = _objectSpread2({}, Default, {}, Manipulator.getDataAttributes(this._element), {}, typeof config === 'object' && config ? config : {});
+ config = _objectSpread2(_objectSpread2(_objectSpread2({}, Default), Manipulator.getDataAttributes(this._element)), typeof config === 'object' && config ? config : {});
typeCheckConfig(NAME, config, this.constructor.DefaultType);
return config;
};
diff --git a/js/dist/toast.js.map b/js/dist/toast.js.map
index 73535d8d6f..8eab08e1e0 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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast.jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast.jQueryInterface\n }\n}\n\nexport default Toast\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getTransitionDurationFromElement","element","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","reflow","offsetHeight","getjQuery","jQuery","document","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","EVENT_CLICK_DISMISS","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","CLASS_NAME_FADE","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_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
+{"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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n getTransitionDurationFromElement,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\n\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_HIDE = 'hide'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_SHOWING = 'showing'\n\nconst DefaultType = {\n animation: 'boolean',\n autohide: 'boolean',\n delay: 'number'\n}\n\nconst Default = {\n animation: true,\n autohide: true,\n delay: 500\n}\n\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"toast\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n Data.setData(element, DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW)\n\n if (showEvent.defaultPrevented) {\n return\n }\n\n if (this._config.animation) {\n this._element.classList.add(CLASS_NAME_FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(CLASS_NAME_SHOWING)\n this._element.classList.add(CLASS_NAME_SHOW)\n\n EventHandler.trigger(this._element, EVENT_SHOWN)\n\n if (this._config.autohide) {\n this._timeout = setTimeout(() => {\n this.hide()\n }, this._config.delay)\n }\n }\n\n this._element.classList.remove(CLASS_NAME_HIDE)\n reflow(this._element)\n this._element.classList.add(CLASS_NAME_SHOWING)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n hide() {\n if (!this._element.classList.contains(CLASS_NAME_SHOW)) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const complete = () => {\n this._element.classList.add(CLASS_NAME_HIDE)\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n }\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n if (this._config.animation) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, complete)\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n complete()\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(CLASS_NAME_SHOW)) {\n this._element.classList.remove(CLASS_NAME_SHOW)\n }\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n Data.removeData(this._element, DATA_KEY)\n\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...Manipulator.getDataAttributes(this._element),\n ...typeof config === 'object' && config ? config : {}\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n EventHandler.on(\n this._element,\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n () => this.hide()\n )\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .toast to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Toast.jQueryInterface\n $.fn[NAME].Constructor = Toast\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast.jQueryInterface\n }\n}\n\nexport default Toast\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getTransitionDurationFromElement","element","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","reflow","offsetHeight","getjQuery","jQuery","document","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","EVENT_CLICK_DISMISS","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","CLASS_NAME_FADE","CLASS_NAME_HIDE","CLASS_NAME_SHOW","CLASS_NAME_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 270e9bfb2c..aa6dbb4454 100644
--- a/js/dist/tooltip.js
+++ b/js/dist/tooltip.js
@@ -467,11 +467,11 @@
if (event) {
var dataKey = this.constructor.DATA_KEY;
- var context = Data.getData(event.delegateTarget, dataKey);
+ var context = Data.getData(event.target, dataKey);
if (!context) {
- context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
- Data.setData(event.delegateTarget, dataKey, context);
+ context = new this.constructor(event.target, this._getDelegateConfig());
+ Data.setData(event.target, dataKey, context);
}
context._activeTrigger.click = !context._activeTrigger.click;
@@ -496,7 +496,7 @@
clearTimeout(this._timeout);
Data.removeData(this.element, this.constructor.DATA_KEY);
EventHandler.off(this.element, this.constructor.EVENT_KEY);
- EventHandler.off(SelectorEngine.closest(this.element, "." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
+ EventHandler.off(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
if (this.tip) {
this.tip.parentNode.removeChild(this.tip);
@@ -672,8 +672,7 @@
_proto.setContent = function setContent() {
var tip = this.getTipElement();
this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle());
- tip.classList.remove(CLASS_NAME_FADE);
- tip.classList.remove(CLASS_NAME_SHOW);
+ tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW);
};
_proto.setElementContent = function setElementContent(element, content) {
@@ -693,7 +692,7 @@
element.appendChild(content);
}
} else {
- element.innerText = content.textContent;
+ element.textContent = content.textContent;
}
return;
@@ -706,7 +705,7 @@
element.innerHTML = content;
} else {
- element.innerText = content;
+ element.textContent = content;
}
};
@@ -747,7 +746,7 @@
return _this3._handlePopperPlacementChange(data);
}
};
- return _objectSpread2({}, defaultBsConfig, {}, this.config.popperConfig);
+ return _objectSpread2(_objectSpread2({}, defaultBsConfig), this.config.popperConfig);
};
_proto._addAttachmentClass = function _addAttachmentClass(attachment) {
@@ -761,7 +760,7 @@
if (typeof this.config.offset === 'function') {
offset.fn = function (data) {
- data.offsets = _objectSpread2({}, data.offsets, {}, _this4.config.offset(data.offsets, _this4.element) || {});
+ data.offsets = _objectSpread2(_objectSpread2({}, data.offsets), _this4.config.offset(data.offsets, _this4.element) || {});
return data;
};
} else {
@@ -814,10 +813,10 @@
}
};
- EventHandler.on(SelectorEngine.closest(this.element, "." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
+ EventHandler.on(this.element.closest("." + CLASS_NAME_MODAL), 'hide.bs.modal', this._hideModalHandler);
if (this.config.selector) {
- this.config = _objectSpread2({}, this.config, {
+ this.config = _objectSpread2(_objectSpread2({}, this.config), {}, {
trigger: 'manual',
selector: ''
});
@@ -837,11 +836,11 @@
_proto._enter = function _enter(event, context) {
var dataKey = this.constructor.DATA_KEY;
- context = context || Data.getData(event.delegateTarget, dataKey);
+ context = context || Data.getData(event.target, dataKey);
if (!context) {
- context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
- Data.setData(event.delegateTarget, dataKey, context);
+ context = new this.constructor(event.target, this._getDelegateConfig());
+ Data.setData(event.target, dataKey, context);
}
if (event) {
@@ -870,11 +869,11 @@
_proto._leave = function _leave(event, context) {
var dataKey = this.constructor.DATA_KEY;
- context = context || Data.getData(event.delegateTarget, dataKey);
+ context = context || Data.getData(event.target, dataKey);
if (!context) {
- context = new this.constructor(event.delegateTarget, this._getDelegateConfig());
- Data.setData(event.delegateTarget, dataKey, context);
+ context = new this.constructor(event.target, this._getDelegateConfig());
+ Data.setData(event.target, dataKey, context);
}
if (event) {
@@ -922,7 +921,7 @@
config.container = config.container[0];
}
- config = _objectSpread2({}, this.constructor.Default, {}, dataAttributes, {}, typeof config === 'object' && config ? config : {});
+ config = _objectSpread2(_objectSpread2(_objectSpread2({}, this.constructor.Default), dataAttributes), typeof config === 'object' && config ? config : {});
if (typeof config.delay === 'number') {
config.delay = {
diff --git a/js/dist/tooltip.js.map b/js/dist/tooltip.js.map
index 514eb05071..1388b6a43c 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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].concat(...el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object',\n popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist,\n popperConfig: null\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(SelectorEngine.closest(this.element, `.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide() {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n this._popper.destroy()\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(CLASS_NAME_FADE)\n tip.classList.remove(CLASS_NAME_SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.innerText = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.innerText = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n EventHandler.on(SelectorEngine.closest(this.element, `.${CLASS_NAME_MODAL}`),\n 'hide.bs.modal',\n this._hideModalHandler\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) ||\n context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.delegateTarget, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.delegateTarget,\n this._getDelegateConfig()\n )\n Data.setData(event.delegateTarget, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip.jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip.jQueryInterface\n }\n}\n\nexport default Tooltip\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getTransitionDurationFromElement","element","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","noop","getjQuery","jQuery","body","hasAttribute","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","indexOf","nodeValue","regExp","filter","attrRegex","i","len","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","concat","querySelectorAll","el","elName","removeChild","attributeList","attributes","whitelistedAttributes","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","popperConfig","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE","CLASS_NAME_MODAL","CLASS_NAME_SHOW","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_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","_getPopperConfig","children","on","complete","_fixTransition","prevHoverState","one","hide","_cleanTipClass","hideEvent","remove","update","scheduleUpdate","Boolean","getTitle","createElement","setElementContent","findOne","content","jquery","innerText","textContent","getAttribute","defaultBsConfig","modifiers","_getOffset","flip","behavior","arrow","preventOverflow","boundariesElement","onCreate","data","originalPlacement","_handlePopperPlacementChange","onUpdate","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'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let {\n transitionDuration,\n transitionDelay\n } = window.getComputedStyle(element)\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes)\n .forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nexport {\n getjQuery,\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nconst allowedAttribute = (attr, allowedAttributeList) => {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return SAFE_URL_PATTERN.test(attr.nodeValue) || DATA_URL_PATTERN.test(attr.nodeValue)\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter(attrRegex => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (regExp[i].test(attrName)) {\n return true\n }\n }\n\n return false\n}\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (!unsafeHtml.length) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].concat(...createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(elName) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].concat(...el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach(attr => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n TRANSITION_END,\n emulateTransitionEnd,\n findShadowRoot,\n getTransitionDurationFromElement,\n getUID,\n isElement,\n noop,\n typeCheckConfig\n} from './util/index'\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './util/sanitizer'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation: 'boolean',\n template: 'string',\n title: '(string|element|function)',\n trigger: 'string',\n delay: '(number|object)',\n html: 'boolean',\n selector: '(string|boolean)',\n placement: '(string|function)',\n offset: '(number|string|function)',\n container: '(string|element|boolean)',\n fallbackPlacement: '(string|array)',\n boundary: '(string|element)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object',\n popperConfig: '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n}\n\nconst Default = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"tooltip-arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n selector: false,\n placement: 'top',\n offset: 0,\n container: false,\n fallbackPlacement: 'flip',\n boundary: 'scrollParent',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist,\n popperConfig: null\n}\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n INSERTED: `inserted${EVENT_KEY}`,\n CLICK: `click${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n FOCUSOUT: `focusout${EVENT_KEY}`,\n MOUSEENTER: `mouseenter${EVENT_KEY}`,\n MOUSELEAVE: `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = Data.getData(event.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if (this.getTipElement().classList.contains(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n Data.removeData(this.element, this.constructor.DATA_KEY)\n\n EventHandler.off(this.element, this.constructor.EVENT_KEY)\n EventHandler.off(this.element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n this.tip.parentNode.removeChild(this.tip)\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if (this.element.style.display === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n if (this.isWithContent() && this._isEnabled) {\n const showEvent = EventHandler.trigger(this.element, this.constructor.Event.SHOW)\n const shadowRoot = findShadowRoot(this.element)\n const isInTheDom = shadowRoot === null ?\n this.element.ownerDocument.documentElement.contains(this.element) :\n shadowRoot.contains(this.element)\n\n if (showEvent.defaultPrevented || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n tip.classList.add(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n this._addAttachmentClass(attachment)\n\n const container = this._getContainer()\n Data.setData(tip, this.constructor.DATA_KEY, this)\n\n if (!this.element.ownerDocument.documentElement.contains(this.tip)) {\n container.appendChild(tip)\n }\n\n EventHandler.trigger(this.element, this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n tip.classList.add(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children).forEach(element => {\n EventHandler.on(element, 'mouseover', noop())\n })\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n EventHandler.trigger(this.element, this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(this.tip)\n EventHandler.one(this.tip, TRANSITION_END, complete)\n emulateTransitionEnd(this.tip, transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide() {\n const tip = this.getTipElement()\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n EventHandler.trigger(this.element, this.constructor.Event.HIDDEN)\n this._popper.destroy()\n }\n\n const hideEvent = EventHandler.trigger(this.element, this.constructor.Event.HIDE)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n tip.classList.remove(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n [].concat(...document.body.children)\n .forEach(element => EventHandler.off(element, 'mouseover', noop))\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if (this.tip.classList.contains(CLASS_NAME_FADE)) {\n const transitionDuration = getTransitionDurationFromElement(tip)\n\n EventHandler.one(tip, TRANSITION_END, complete)\n emulateTransitionEnd(tip, transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n if (this.tip) {\n return this.tip\n }\n\n const element = document.createElement('div')\n element.innerHTML = this.config.template\n\n this.tip = element.children[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent(SelectorEngine.findOne(SELECTOR_TOOLTIP_INNER, tip), this.getTitle())\n tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n }\n\n setElementContent(element, content) {\n if (element === null) {\n return\n }\n\n if (typeof content === 'object' && isElement(content)) {\n if (content.jquery) {\n content = content[0]\n }\n\n // content is a DOM node or a jQuery\n if (this.config.html) {\n if (content.parentNode !== element) {\n element.innerHTML = ''\n element.appendChild(content)\n }\n } else {\n element.textContent = content.textContent\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n element.innerHTML = content\n } else {\n element.textContent = content\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function' ?\n this.config.title.call(this.element) :\n this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: `.${this.constructor.NAME}-arrow`\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: data => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: data => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _addAttachmentClass(attachment) {\n this.getTipElement().classList.add(`${CLASS_PREFIX}-${attachment}`)\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = data => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (isElement(this.config.container)) {\n return this.config.container\n }\n\n return SelectorEngine.findOne(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach(trigger => {\n if (trigger === 'click') {\n EventHandler.on(this.element,\n this.constructor.Event.CLICK,\n this.config.selector,\n event => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER ?\n this.constructor.Event.MOUSELEAVE :\n this.constructor.Event.FOCUSOUT\n\n EventHandler.on(this.element,\n eventIn,\n this.config.selector,\n event => this._enter(event)\n )\n EventHandler.on(this.element,\n eventOut,\n this.config.selector,\n event => this._leave(event)\n )\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n EventHandler.on(this.element.closest(`.${CLASS_NAME_MODAL}`),\n 'hide.bs.modal',\n this._hideModalHandler\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if (context.getTipElement().classList.contains(CLASS_NAME_SHOW) ||\n context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || Data.getData(event.target, dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.target,\n this._getDelegateConfig()\n )\n Data.setData(event.target, dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = Manipulator.getDataAttributes(this.element)\n\n Object.keys(dataAttributes)\n .forEach(dataAttr => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n if (config && typeof config.container === 'object' && config.container.jquery) {\n config.container = config.container[0]\n }\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const tip = this.getTipElement()\n const tabClass = tip.getAttribute('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.map(token => token.trim())\n .forEach(tClass => tip.classList.remove(tClass))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this._addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n tip.classList.remove(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static jQueryInterface(config) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config]()\n }\n })\n }\n\n static getInstance(element) {\n return Data.getData(element, DATA_KEY)\n }\n}\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .tooltip to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Tooltip.jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip.jQueryInterface\n }\n}\n\nexport default Tooltip\n"],"names":["MAX_UID","MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getUID","prefix","Math","random","document","getElementById","getTransitionDurationFromElement","element","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","noop","getjQuery","jQuery","body","hasAttribute","uriAttrs","ARIA_ATTRIBUTE_PATTERN","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","attr","allowedAttributeList","attrName","nodeName","indexOf","nodeValue","regExp","filter","attrRegex","i","len","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","concat","querySelectorAll","el","elName","removeChild","attributeList","attributes","whitelistedAttributes","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","popperConfig","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","CLASS_NAME_FADE","CLASS_NAME_MODAL","CLASS_NAME_SHOW","HOVER_STATE_SHOW","HOVER_STATE_OUT","SELECTOR_TOOLTIP_INNER","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","Tooltip","Popper","TypeError","_isEnabled","_timeout","_hoverState","_activeTrigger","_popper","_getConfig","tip","_setListeners","Data","setData","constructor","enable","disable","toggleEnabled","toggle","event","dataKey","context","getData","target","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","classList","contains","dispose","clearTimeout","removeData","EventHandler","off","closest","_hideModalHandler","destroy","show","style","display","isWithContent","showEvent","shadowRoot","isInTheDom","ownerDocument","defaultPrevented","tipId","setAttribute","setContent","add","attachment","_getAttachment","_addAttachmentClass","_getContainer","appendChild","_getPopperConfig","children","on","complete","_fixTransition","prevHoverState","one","hide","_cleanTipClass","hideEvent","remove","update","scheduleUpdate","Boolean","getTitle","createElement","setElementContent","SelectorEngine","findOne","content","jquery","textContent","getAttribute","defaultBsConfig","modifiers","_getOffset","flip","behavior","arrow","preventOverflow","boundariesElement","onCreate","data","originalPlacement","_handlePopperPlacementChange","onUpdate","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