aboutsummaryrefslogtreecommitdiff
path: root/js/dist
diff options
context:
space:
mode:
Diffstat (limited to 'js/dist')
-rw-r--r--js/dist/carousel.js23
-rw-r--r--js/dist/carousel.js.map2
-rw-r--r--js/dist/collapse.js33
-rw-r--r--js/dist/collapse.js.map2
-rw-r--r--js/dist/dropdown.js30
-rw-r--r--js/dist/dropdown.js.map2
-rw-r--r--js/dist/modal.js83
-rw-r--r--js/dist/modal.js.map2
-rw-r--r--js/dist/scrollspy.js28
-rw-r--r--js/dist/scrollspy.js.map2
-rw-r--r--js/dist/tab.js14
-rw-r--r--js/dist/tab.js.map2
-rw-r--r--js/dist/tooltip.js36
-rw-r--r--js/dist/tooltip.js.map2
-rw-r--r--js/dist/util.js11
-rw-r--r--js/dist/util.js.map2
16 files changed, 168 insertions, 106 deletions
diff --git a/js/dist/carousel.js b/js/dist/carousel.js
index 6e4269245..77d6e80d9 100644
--- a/js/dist/carousel.js
+++ b/js/dist/carousel.js
@@ -112,10 +112,9 @@ var Carousel = function ($) {
// public
Carousel.prototype.next = function next() {
- if (this._isSliding) {
- throw new Error('Carousel is sliding');
+ if (!this._isSliding) {
+ this._slide(Direction.NEXT);
}
- this._slide(Direction.NEXT);
};
Carousel.prototype.nextWhenVisible = function nextWhenVisible() {
@@ -126,10 +125,9 @@ var Carousel = function ($) {
};
Carousel.prototype.prev = function prev() {
- if (this._isSliding) {
- throw new Error('Carousel is sliding');
+ if (!this._isSliding) {
+ this._slide(Direction.PREV);
}
- this._slide(Direction.PREV);
};
Carousel.prototype.pause = function pause(event) {
@@ -272,9 +270,13 @@ var Carousel = function ($) {
};
Carousel.prototype._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
+ var targetIndex = this._getItemIndex(relatedTarget);
+ var fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0]);
var slideEvent = $.Event(Event.SLIDE, {
relatedTarget: relatedTarget,
- direction: eventDirectionName
+ direction: eventDirectionName,
+ from: fromIndex,
+ to: targetIndex
});
$(this._element).trigger(slideEvent);
@@ -298,8 +300,9 @@ var Carousel = function ($) {
var _this3 = this;
var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0];
+ var activeElementIndex = this._getItemIndex(activeElement);
var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
-
+ var nextElementIndex = this._getItemIndex(nextElement);
var isCycling = Boolean(this._interval);
var directionalClassName = void 0;
@@ -341,7 +344,9 @@ var Carousel = function ($) {
var slidEvent = $.Event(Event.SLID, {
relatedTarget: nextElement,
- direction: eventDirectionName
+ direction: eventDirectionName,
+ from: activeElementIndex,
+ to: nextElementIndex
});
if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) {
diff --git a/js/dist/carousel.js.map b/js/dist/carousel.js.map
index 4edaef0b7..3e8fdfd2d 100644
--- a/js/dist/carousel.js.map
+++ b/js/dist/carousel.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../src/carousel.js"],"names":["Carousel","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","Default","interval","keyboard","slide","pause","wrap","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","Event","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","LOAD_DATA_API","CLICK_DATA_API","ClassName","CAROUSEL","ACTIVE","ITEM","Selector","ACTIVE_ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","element","config","_items","_interval","_activeElement","_isPaused","_isSliding","_config","_getConfig","_element","_indicatorsElement","find","_addEventListeners","next","Error","_slide","nextWhenVisible","document","hidden","prev","event","Util","supportsTransitionEnd","triggerTransitionEnd","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","one","direction","dispose","off","removeData","extend","typeCheckConfig","on","_keydown","documentElement","test","target","tagName","which","preventDefault","makeArray","parent","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","slideEvent","trigger","_setActiveIndicatorElement","removeClass","nextIndicator","children","addClass","nextElement","isCycling","Boolean","directionalClassName","orderClassName","hasClass","isDefaultPrevented","slidEvent","reflow","TRANSITION_END","setTimeout","emulateTransitionEnd","_jQueryInterface","each","data","action","undefined","_dataApiClickHandler","selector","getSelectorFromElement","slideIndex","getAttribute","call","window","$carousel","Constructor","noConflict","jQuery"],"mappings":"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","file":"carousel.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n this._addEventListeners()\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n\n // public\n\n next() {\n if (this._isSliding) {\n throw new Error('Carousel is sliding')\n }\n this._slide(Direction.NEXT)\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n if (!document.hidden) {\n this.next()\n }\n }\n\n prev() {\n if (this._isSliding) {\n throw new Error('Carousel is sliding')\n }\n this._slide(Direction.PREV)\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if ($(this._element).find(Selector.NEXT_PREV)[0] &&\n Util.supportsTransitionEnd()) {\n Util.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.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 = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\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 $(this._element).one(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 $(this._element).off(EVENT_KEY)\n $.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\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover' &&\n !('ontouchstart' in document.documentElement)) {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(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 return\n }\n }\n\n _getItemIndex(element) {\n this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $(this._indicatorsElement)\n .find(Selector.ACTIVE)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\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 const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName\n })\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.SLIDE)) {\n\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n\n })\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = $.extend({}, Default, $(this).data())\n\n if (typeof config === 'object') {\n $.extend(_config, config)\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (data[action] === undefined) {\n throw new Error(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = $.extend({}, $(target).data(), $(this).data())\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n $(Selector.DATA_RIDE).each(function () {\n const $carousel = $(this)\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n })\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n\n})(jQuery)\n\nexport default Carousel\n"]} \ No newline at end of file
+{"version":3,"sources":["../src/carousel.js"],"names":["Carousel","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","Default","interval","keyboard","slide","pause","wrap","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","Event","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","LOAD_DATA_API","CLICK_DATA_API","ClassName","CAROUSEL","ACTIVE","ITEM","Selector","ACTIVE_ITEM","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","element","config","_items","_interval","_activeElement","_isPaused","_isSliding","_config","_getConfig","_element","_indicatorsElement","find","_addEventListeners","next","_slide","nextWhenVisible","document","hidden","prev","event","Util","supportsTransitionEnd","triggerTransitionEnd","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","one","direction","dispose","off","removeData","extend","typeCheckConfig","on","_keydown","documentElement","test","target","tagName","which","preventDefault","makeArray","parent","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","trigger","_setActiveIndicatorElement","removeClass","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","Boolean","directionalClassName","orderClassName","hasClass","isDefaultPrevented","slidEvent","reflow","TRANSITION_END","setTimeout","emulateTransitionEnd","_jQueryInterface","each","data","action","undefined","Error","_dataApiClickHandler","selector","getSelectorFromElement","slideIndex","getAttribute","call","window","$carousel","Constructor","noConflict","jQuery"],"mappings":"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","file":"carousel.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Carousel = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'carousel'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.carousel'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n const ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\n const ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\n\n const Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true\n }\n\n const DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean'\n }\n\n const Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n }\n\n const Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item'\n }\n\n const Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Carousel {\n\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n\n this._isPaused = false\n this._isSliding = false\n\n this._config = this._getConfig(config)\n this._element = $(element)[0]\n this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]\n\n this._addEventListeners()\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\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 if (!document.hidden) {\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 ($(this._element).find(Selector.NEXT_PREV)[0] &&\n Util.supportsTransitionEnd()) {\n Util.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.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 = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\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 $(this._element).one(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 $(this._element).off(EVENT_KEY)\n $.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\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover' &&\n !('ontouchstart' in document.documentElement)) {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(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 return\n }\n }\n\n _getItemIndex(element) {\n this._items = $.makeArray($(element).parent().find(Selector.ITEM))\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1 ?\n this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex($(this._element).find(Selector.ACTIVE_ITEM)[0])\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n $(this._indicatorsElement)\n .find(Selector.ACTIVE)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\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 const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.SLIDE)) {\n\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n\n })\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = $.extend({}, Default, $(this).data())\n\n if (typeof config === 'object') {\n $.extend(_config, config)\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (data[action] === undefined) {\n throw new Error(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = $.extend({}, $(target).data(), $(this).data())\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n $(window).on(Event.LOAD_DATA_API, () => {\n $(Selector.DATA_RIDE).each(function () {\n const $carousel = $(this)\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n })\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Carousel._jQueryInterface\n $.fn[NAME].Constructor = Carousel\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n }\n\n return Carousel\n\n})(jQuery)\n\nexport default Carousel\n"]} \ No newline at end of file
diff --git a/js/dist/collapse.js b/js/dist/collapse.js
index dcf368128..6e570b890 100644
--- a/js/dist/collapse.js
+++ b/js/dist/collapse.js
@@ -59,7 +59,8 @@ var Collapse = function ($) {
var Selector = {
ACTIVES: '.card > .show, .card > .collapsing',
- DATA_TOGGLE: '[data-toggle="collapse"]'
+ DATA_TOGGLE: '[data-toggle="collapse"]',
+ DATA_CHILDREN: 'data-children'
};
/**
@@ -76,13 +77,20 @@ var Collapse = function ($) {
this._element = element;
this._config = this._getConfig(config);
this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]')));
-
this._parent = this._config.parent ? this._getParent() : null;
if (!this._config.parent) {
this._addAriaAndCollapsedClass(this._element, this._triggerArray);
}
+ this._selectorActives = Selector.ACTIVES;
+ if (this._parent) {
+ var childrenSelector = this._parent.hasAttribute(Selector.DATA_CHILDREN) ? this._parent.getAttribute(Selector.DATA_CHILDREN) : null;
+ if (childrenSelector !== null) {
+ this._selectorActives = childrenSelector + ' > .show, ' + childrenSelector + ' > .collapsing';
+ }
+ }
+
if (this._config.toggle) {
this.toggle();
}
@@ -103,11 +111,7 @@ var Collapse = function ($) {
Collapse.prototype.show = function show() {
var _this = this;
- if (this._isTransitioning) {
- throw new Error('Collapse is transitioning');
- }
-
- if ($(this._element).hasClass(ClassName.SHOW)) {
+ if (this._isTransitioning || $(this._element).hasClass(ClassName.SHOW)) {
return;
}
@@ -115,7 +119,7 @@ var Collapse = function ($) {
var activesData = void 0;
if (this._parent) {
- actives = $.makeArray($(this._parent).find(Selector.ACTIVES));
+ actives = $.makeArray($(this._parent).find(this._selectorActives));
if (!actives.length) {
actives = null;
}
@@ -180,11 +184,7 @@ var Collapse = function ($) {
Collapse.prototype.hide = function hide() {
var _this2 = this;
- if (this._isTransitioning) {
- throw new Error('Collapse is transitioning');
- }
-
- if (!$(this._element).hasClass(ClassName.SHOW)) {
+ if (this._isTransitioning || !$(this._element).hasClass(ClassName.SHOW)) {
return;
}
@@ -195,9 +195,8 @@ var Collapse = function ($) {
}
var dimension = this._getDimension();
- var offsetDimension = dimension === Dimension.WIDTH ? 'offsetWidth' : 'offsetHeight';
- this._element.style[dimension] = this._element[offsetDimension] + 'px';
+ this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + 'px';
Util.reflow(this._element);
@@ -331,7 +330,9 @@ var Collapse = function ($) {
*/
$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
- event.preventDefault();
+ if (!/input|textarea/i.test(event.target.tagName)) {
+ event.preventDefault();
+ }
var target = Collapse._getTargetFromElement(this);
var data = $(target).data(DATA_KEY);
diff --git a/js/dist/collapse.js.map b/js/dist/collapse.js.map
index c6d84d52b..d58062002 100644
--- a/js/dist/collapse.js.map
+++ b/js/dist/collapse.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../src/collapse.js"],"names":["Collapse","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","Default","toggle","parent","DefaultType","Event","SHOW","SHOWN","HIDE","HIDDEN","CLICK_DATA_API","ClassName","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","Selector","ACTIVES","DATA_TOGGLE","element","config","_isTransitioning","_element","_config","_getConfig","_triggerArray","makeArray","id","_parent","_getParent","_addAriaAndCollapsedClass","hasClass","hide","show","Error","actives","activesData","find","length","data","startEvent","trigger","isDefaultPrevented","_jQueryInterface","call","dimension","_getDimension","removeClass","addClass","style","setAttribute","attr","setTransitioning","complete","Util","supportsTransitionEnd","capitalizedDimension","toUpperCase","slice","scrollSize","one","TRANSITION_END","emulateTransitionEnd","offsetDimension","reflow","isTransitioning","dispose","removeData","extend","Boolean","typeCheckConfig","hasWidth","selector","each","i","_getTargetFromElement","triggerArray","isOpen","toggleClass","getSelectorFromElement","$this","test","undefined","document","on","event","preventDefault","target","Constructor","noConflict","jQuery"],"mappings":"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","file":"collapse.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : 'string'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.card > .show, .card > .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\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\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n\n // public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning) {\n throw new Error('Collapse is transitioning')\n }\n\n if ($(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray($(this._parent).find(Selector.ACTIVES))\n if (!actives.length) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n this._element.setAttribute('aria-expanded', true)\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning) {\n throw new Error('Collapse is transitioning')\n }\n\n if (!$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n const offsetDimension = dimension === Dimension.WIDTH ?\n 'offsetWidth' : 'offsetHeight'\n\n this._element.style[dimension] = `${this._element[offsetDimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n this._element.setAttribute('aria-expanded', false)\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.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\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\n config.toggle = Boolean(config.toggle) // coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n const parent = $(this._config.parent)[0]\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n element.setAttribute('aria-expanded', isOpen)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n\n // static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = $.extend(\n {},\n Default,\n $this.data(),\n typeof config === 'object' && 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(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n\n const target = Collapse._getTargetFromElement(this)\n const data = $(target).data(DATA_KEY)\n const config = data ? 'toggle' : $(this).data()\n\n Collapse._jQueryInterface.call($(target), config)\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n\n})(jQuery)\n\nexport default Collapse\n"]} \ No newline at end of file
+{"version":3,"sources":["../src/collapse.js"],"names":["Collapse","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","Default","toggle","parent","DefaultType","Event","SHOW","SHOWN","HIDE","HIDDEN","CLICK_DATA_API","ClassName","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","Selector","ACTIVES","DATA_TOGGLE","DATA_CHILDREN","element","config","_isTransitioning","_element","_config","_getConfig","_triggerArray","makeArray","id","_parent","_getParent","_addAriaAndCollapsedClass","_selectorActives","childrenSelector","hasAttribute","getAttribute","hasClass","hide","show","actives","activesData","find","length","data","startEvent","trigger","isDefaultPrevented","_jQueryInterface","call","dimension","_getDimension","removeClass","addClass","style","setAttribute","attr","setTransitioning","complete","Util","supportsTransitionEnd","capitalizedDimension","toUpperCase","slice","scrollSize","one","TRANSITION_END","emulateTransitionEnd","getBoundingClientRect","reflow","isTransitioning","dispose","removeData","extend","Boolean","typeCheckConfig","hasWidth","selector","each","i","_getTargetFromElement","triggerArray","isOpen","toggleClass","getSelectorFromElement","$this","test","undefined","Error","document","on","event","target","tagName","preventDefault","Constructor","noConflict","jQuery"],"mappings":"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","file":"collapse.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Collapse = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'collapse'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.collapse'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 600\n\n const Default = {\n toggle : true,\n parent : ''\n }\n\n const DefaultType = {\n toggle : 'boolean',\n parent : 'string'\n }\n\n const Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n }\n\n const Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n }\n\n const Selector = {\n ACTIVES : '.card > .show, .card > .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]',\n DATA_CHILDREN : 'data-children'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Collapse {\n\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = $.makeArray($(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\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 this._selectorActives = Selector.ACTIVES\n if (this._parent) {\n const childrenSelector = this._parent.hasAttribute(Selector.DATA_CHILDREN) ? this._parent.getAttribute(Selector.DATA_CHILDREN) : null\n if (childrenSelector !== null) {\n this._selectorActives = `${childrenSelector} > .show, ${childrenSelector} > .collapsing`\n }\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n\n // public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = $.makeArray($(this._parent).find(this._selectorActives))\n if (!actives.length) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n this._element.setAttribute('aria-expanded', true)\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n this._element.setAttribute('aria-expanded', false)\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n\n if (!Util.supportsTransitionEnd()) {\n complete()\n return\n }\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.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\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\n config.toggle = Boolean(config.toggle) // coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n const parent = $(this._config.parent)[0]\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n $(parent).find(selector).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n if (element) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n element.setAttribute('aria-expanded', isOpen)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n }\n\n\n // static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? $(selector)[0] : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = $.extend(\n {},\n Default,\n $this.data(),\n typeof config === 'object' && 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(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n if (!/input|textarea/i.test(event.target.tagName)) {\n event.preventDefault()\n }\n\n const target = Collapse._getTargetFromElement(this)\n const data = $(target).data(DATA_KEY)\n const config = data ? 'toggle' : $(this).data()\n\n Collapse._jQueryInterface.call($(target), config)\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Collapse._jQueryInterface\n $.fn[NAME].Constructor = Collapse\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n }\n\n return Collapse\n\n})(jQuery)\n\nexport default Collapse\n"]} \ No newline at end of file
diff --git a/js/dist/dropdown.js b/js/dist/dropdown.js
index 6a1b227b1..0c81fe216 100644
--- a/js/dist/dropdown.js
+++ b/js/dist/dropdown.js
@@ -90,15 +90,6 @@ var Dropdown = function ($) {
return false;
}
- if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
-
- // if mobile we use a backdrop because click events don't delegate
- var dropdown = document.createElement('div');
- dropdown.className = ClassName.BACKDROP;
- $(dropdown).insertBefore(this);
- $(dropdown).on('click', Dropdown._clearMenus);
- }
-
var relatedTarget = {
relatedTarget: this
};
@@ -110,6 +101,16 @@ var Dropdown = function ($) {
return false;
}
+ // set the backdrop only if the dropdown menu will be opened
+ if ('ontouchstart' in document.documentElement && !$(parent).closest(Selector.NAVBAR_NAV).length) {
+
+ // if mobile we use a backdrop because click events don't delegate
+ var dropdown = document.createElement('div');
+ dropdown.className = ClassName.BACKDROP;
+ $(dropdown).insertBefore(this);
+ $(dropdown).on('click', Dropdown._clearMenus);
+ }
+
this.focus();
this.setAttribute('aria-expanded', true);
@@ -156,11 +157,6 @@ var Dropdown = function ($) {
return;
}
- var backdrop = $(Selector.BACKDROP)[0];
- if (backdrop) {
- backdrop.parentNode.removeChild(backdrop);
- }
-
var toggles = $.makeArray($(Selector.DATA_TOGGLE));
for (var i = 0; i < toggles.length; i++) {
@@ -183,6 +179,12 @@ var Dropdown = function ($) {
continue;
}
+ // remove backdrop only if the dropdown menu will be hidden
+ var backdrop = $(parent).find(Selector.BACKDROP)[0];
+ if (backdrop) {
+ backdrop.parentNode.removeChild(backdrop);
+ }
+
toggles[i].setAttribute('aria-expanded', 'false');
$(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));
diff --git a/js/dist/dropdown.js.map b/js/dist/dropdown.js.map
index c27c117b4..0f8e85129 100644
--- a/js/dist/dropdown.js.map
+++ b/js/dist/dropdown.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../src/dropdown.js"],"names":["Dropdown","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","ESCAPE_KEYCODE","SPACE_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","RegExp","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK","CLICK_DATA_API","FOCUSIN_DATA_API","KEYDOWN_DATA_API","ClassName","BACKDROP","DISABLED","Selector","DATA_TOGGLE","FORM_CHILD","ROLE_MENU","ROLE_LISTBOX","NAVBAR_NAV","VISIBLE_ITEMS","element","_element","_addEventListeners","toggle","disabled","hasClass","parent","_getParentFromElement","isActive","_clearMenus","document","documentElement","closest","length","dropdown","createElement","className","insertBefore","on","relatedTarget","showEvent","trigger","isDefaultPrevented","focus","setAttribute","toggleClass","dispose","removeData","off","_jQueryInterface","config","each","data","undefined","Error","call","event","which","backdrop","parentNode","removeChild","toggles","makeArray","i","type","test","target","tagName","contains","hideEvent","removeClass","selector","Util","getSelectorFromElement","_dataApiKeydownHandler","preventDefault","stopPropagation","find","items","get","index","indexOf","prototype","e","Constructor","noConflict","jQuery"],"mappings":"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","file":"dropdown.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}|${SPACE_KEYCODE}`)\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUSIN_DATA_API : `focusin${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n BACKDROP : 'dropdown-backdrop',\n DISABLED : 'disabled',\n SHOW : 'show'\n }\n\n const Selector = {\n BACKDROP : '.dropdown-backdrop',\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n ROLE_MENU : '[role=\"menu\"]',\n ROLE_LISTBOX : '[role=\"listbox\"]',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '[role=\"menu\"] li:not(.disabled) a, '\n + '[role=\"listbox\"] li:not(.disabled) a'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n\n constructor(element) {\n this._element = element\n\n this._addEventListeners()\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n\n // public\n\n toggle() {\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return false\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return false\n }\n\n if ('ontouchstart' in document.documentElement &&\n !$(parent).closest(Selector.NAVBAR_NAV).length) {\n\n // if mobile we use a backdrop because click events don't delegate\n const dropdown = document.createElement('div')\n dropdown.className = ClassName.BACKDROP\n $(dropdown).insertBefore(this)\n $(dropdown).on('click', Dropdown._clearMenus)\n }\n\n const relatedTarget = {\n relatedTarget : this\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return false\n }\n\n this.focus()\n this.setAttribute('aria-expanded', true)\n\n $(parent).toggleClass(ClassName.SHOW)\n $(parent).trigger($.Event(Event.SHOWN, relatedTarget))\n\n return false\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n }\n\n\n // private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, this.toggle)\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Dropdown(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config].call(this)\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && event.which === RIGHT_MOUSE_BUTTON_WHICH) {\n return\n }\n\n const backdrop = $(Selector.BACKDROP)[0]\n if (backdrop) {\n backdrop.parentNode.removeChild(backdrop)\n }\n\n const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n\n for (let i = 0; i < toggles.length; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const relatedTarget = {\n relatedTarget : toggles[i]\n }\n\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'focusin')\n && $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n if (!REGEXP_KEYDOWN.test(event.which) ||\n /input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && event.which !== ESCAPE_KEYCODE ||\n isActive && event.which === ESCAPE_KEYCODE) {\n\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.FOCUSIN_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle)\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n\n})(jQuery)\n\nexport default Dropdown\n"]} \ No newline at end of file
+{"version":3,"sources":["../src/dropdown.js"],"names":["Dropdown","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","ESCAPE_KEYCODE","SPACE_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","RegExp","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK","CLICK_DATA_API","FOCUSIN_DATA_API","KEYDOWN_DATA_API","ClassName","BACKDROP","DISABLED","Selector","DATA_TOGGLE","FORM_CHILD","ROLE_MENU","ROLE_LISTBOX","NAVBAR_NAV","VISIBLE_ITEMS","element","_element","_addEventListeners","toggle","disabled","hasClass","parent","_getParentFromElement","isActive","_clearMenus","relatedTarget","showEvent","trigger","isDefaultPrevented","document","documentElement","closest","length","dropdown","createElement","className","insertBefore","on","focus","setAttribute","toggleClass","dispose","removeData","off","_jQueryInterface","config","each","data","undefined","Error","call","event","which","toggles","makeArray","i","type","test","target","tagName","contains","hideEvent","backdrop","find","parentNode","removeChild","removeClass","selector","Util","getSelectorFromElement","_dataApiKeydownHandler","preventDefault","stopPropagation","items","get","index","indexOf","prototype","e","Constructor","noConflict","jQuery"],"mappings":";;;;AAGA;;;;;;;AAOA,IAAMA,WAAY,UAACC,CAAD,EAAO;;AAGvB;;;;;;AAMA,MAAMC,OAA2B,UAAjC;AACA,MAAMC,UAA2B,eAAjC;AACA,MAAMC,WAA2B,aAAjC;AACA,MAAMC,kBAA+BD,QAArC;AACA,MAAME,eAA2B,WAAjC;AACA,MAAMC,qBAA2BN,EAAEO,EAAF,CAAKN,IAAL,CAAjC;AACA,MAAMO,iBAA2B,EAAjC,CAfuB,CAea;AACpC,MAAMC,gBAA2B,EAAjC,CAhBuB,CAgBa;AACpC,MAAMC,mBAA2B,EAAjC,CAjBuB,CAiBa;AACpC,MAAMC,qBAA2B,EAAjC,CAlBuB,CAkBa;AACpC,MAAMC,2BAA2B,CAAjC,CAnBuB,CAmBY;AACnC,MAAMC,iBAAiB,IAAIC,MAAJ,CAAcJ,gBAAd,SAAkCC,kBAAlC,SAAwDH,cAAxD,SAA0EC,aAA1E,CAAvB;;AAEA,MAAMM,QAAQ;AACZC,mBAA0BZ,SADd;AAEZa,uBAA4Bb,SAFhB;AAGZc,mBAA0Bd,SAHd;AAIZe,qBAA2Bf,SAJf;AAKZgB,qBAA2BhB,SALf;AAMZiB,8BAA2BjB,SAA3B,GAAuCC,YAN3B;AAOZiB,kCAA6BlB,SAA7B,GAAyCC,YAP7B;AAQZkB,kCAA6BnB,SAA7B,GAAyCC;AAR7B,GAAd;;AAWA,MAAMmB,YAAY;AAChBC,cAAW,mBADK;AAEhBC,cAAW,UAFK;AAGhBR,UAAW;AAHK,GAAlB;;AAMA,MAAMS,WAAW;AACfF,cAAgB,oBADD;AAEfG,iBAAgB,0BAFD;AAGfC,gBAAgB,gBAHD;AAIfC,eAAgB,eAJD;AAKfC,kBAAgB,kBALD;AAMfC,gBAAgB,aAND;AAOfC,mBAAgB,wCACA;AARD,GAAjB;;AAYA;;;;;;AAnDuB,MAyDjBlC,QAzDiB;AA2DrB,sBAAYmC,OAAZ,EAAqB;AAAA;;AACnB,WAAKC,QAAL,GAAgBD,OAAhB;;AAEA,WAAKE,kBAAL;AACD;;AAGD;;AAOA;;AAzEqB,uBA2ErBC,MA3EqB,qBA2EZ;AACP,UAAI,KAAKC,QAAL,IAAiBtC,EAAE,IAAF,EAAQuC,QAAR,CAAiBf,UAAUE,QAA3B,CAArB,EAA2D;AACzD,eAAO,KAAP;AACD;;AAED,UAAMc,SAAWzC,SAAS0C,qBAAT,CAA+B,IAA/B,CAAjB;AACA,UAAMC,WAAW1C,EAAEwC,MAAF,EAAUD,QAAV,CAAmBf,UAAUN,IAA7B,CAAjB;;AAEAnB,eAAS4C,WAAT;;AAEA,UAAID,QAAJ,EAAc;AACZ,eAAO,KAAP;AACD;;AAED,UAAME,gBAAgB;AACpBA,uBAAgB;AADI,OAAtB;AAGA,UAAMC,YAAgB7C,EAAEe,KAAF,CAAQA,MAAMG,IAAd,EAAoB0B,aAApB,CAAtB;;AAEA5C,QAAEwC,MAAF,EAAUM,OAAV,CAAkBD,SAAlB;;AAEA,UAAIA,UAAUE,kBAAV,EAAJ,EAAoC;AAClC,eAAO,KAAP;AACD;;AAED;AACA,UAAI,kBAAkBC,SAASC,eAA3B,IACD,CAACjD,EAAEwC,MAAF,EAAUU,OAAV,CAAkBvB,SAASK,UAA3B,EAAuCmB,MAD3C,EACmD;;AAEjD;AACA,YAAMC,WAAeJ,SAASK,aAAT,CAAuB,KAAvB,CAArB;AACAD,iBAASE,SAAT,GAAqB9B,UAAUC,QAA/B;AACAzB,UAAEoD,QAAF,EAAYG,YAAZ,CAAyB,IAAzB;AACAvD,UAAEoD,QAAF,EAAYI,EAAZ,CAAe,OAAf,EAAwBzD,SAAS4C,WAAjC;AACD;;AAED,WAAKc,KAAL;AACA,WAAKC,YAAL,CAAkB,eAAlB,EAAmC,IAAnC;;AAEA1D,QAAEwC,MAAF,EAAUmB,WAAV,CAAsBnC,UAAUN,IAAhC;AACAlB,QAAEwC,MAAF,EAAUM,OAAV,CAAkB9C,EAAEe,KAAF,CAAQA,MAAMI,KAAd,EAAqByB,aAArB,CAAlB;;AAEA,aAAO,KAAP;AACD,KAtHoB;;AAAA,uBAwHrBgB,OAxHqB,sBAwHX;AACR5D,QAAE6D,UAAF,CAAa,KAAK1B,QAAlB,EAA4BhC,QAA5B;AACAH,QAAE,KAAKmC,QAAP,EAAiB2B,GAAjB,CAAqB1D,SAArB;AACA,WAAK+B,QAAL,GAAgB,IAAhB;AACD,KA5HoB;;AA+HrB;;AA/HqB,uBAiIrBC,kBAjIqB,iCAiIA;AACnBpC,QAAE,KAAKmC,QAAP,EAAiBqB,EAAjB,CAAoBzC,MAAMK,KAA1B,EAAiC,KAAKiB,MAAtC;AACD,KAnIoB;;AAsIrB;;AAtIqB,aAwId0B,gBAxIc,6BAwIGC,MAxIH,EAwIW;AAC9B,aAAO,KAAKC,IAAL,CAAU,YAAY;AAC3B,YAAIC,OAAOlE,EAAE,IAAF,EAAQkE,IAAR,CAAa/D,QAAb,CAAX;;AAEA,YAAI,CAAC+D,IAAL,EAAW;AACTA,iBAAO,IAAInE,QAAJ,CAAa,IAAb,CAAP;AACAC,YAAE,IAAF,EAAQkE,IAAR,CAAa/D,QAAb,EAAuB+D,IAAvB;AACD;;AAED,YAAI,OAAOF,MAAP,KAAkB,QAAtB,EAAgC;AAC9B,cAAIE,KAAKF,MAAL,MAAiBG,SAArB,EAAgC;AAC9B,kBAAM,IAAIC,KAAJ,uBAA8BJ,MAA9B,OAAN;AACD;AACDE,eAAKF,MAAL,EAAaK,IAAb,CAAkB,IAAlB;AACD;AACF,OAdM,CAAP;AAeD,KAxJoB;;AAAA,aA0Jd1B,WA1Jc,wBA0JF2B,KA1JE,EA0JK;AACxB,UAAIA,SAASA,MAAMC,KAAN,KAAgB3D,wBAA7B,EAAuD;AACrD;AACD;;AAED,UAAM4D,UAAUxE,EAAEyE,SAAF,CAAYzE,EAAE2B,SAASC,WAAX,CAAZ,CAAhB;;AAEA,WAAK,IAAI8C,IAAI,CAAb,EAAgBA,IAAIF,QAAQrB,MAA5B,EAAoCuB,GAApC,EAAyC;AACvC,YAAMlC,SAAgBzC,SAAS0C,qBAAT,CAA+B+B,QAAQE,CAAR,CAA/B,CAAtB;AACA,YAAM9B,gBAAgB;AACpBA,yBAAgB4B,QAAQE,CAAR;AADI,SAAtB;;AAIA,YAAI,CAAC1E,EAAEwC,MAAF,EAAUD,QAAV,CAAmBf,UAAUN,IAA7B,CAAL,EAAyC;AACvC;AACD;;AAED,YAAIoD,UAAUA,MAAMK,IAAN,KAAe,OAAf,IACV,kBAAkBC,IAAlB,CAAuBN,MAAMO,MAAN,CAAaC,OAApC,CADU,IACsCR,MAAMK,IAAN,KAAe,SAD/D,KAEG3E,EAAE+E,QAAF,CAAWvC,MAAX,EAAmB8B,MAAMO,MAAzB,CAFP,EAEyC;AACvC;AACD;;AAED,YAAMG,YAAYhF,EAAEe,KAAF,CAAQA,MAAMC,IAAd,EAAoB4B,aAApB,CAAlB;AACA5C,UAAEwC,MAAF,EAAUM,OAAV,CAAkBkC,SAAlB;AACA,YAAIA,UAAUjC,kBAAV,EAAJ,EAAoC;AAClC;AACD;;AAED;AACA,YAAMkC,WAAWjF,EAAEwC,MAAF,EAAU0C,IAAV,CAAevD,SAASF,QAAxB,EAAkC,CAAlC,CAAjB;AACA,YAAIwD,QAAJ,EAAc;AACZA,mBAASE,UAAT,CAAoBC,WAApB,CAAgCH,QAAhC;AACD;;AAEDT,gBAAQE,CAAR,EAAWhB,YAAX,CAAwB,eAAxB,EAAyC,OAAzC;;AAEA1D,UAAEwC,MAAF,EACG6C,WADH,CACe7D,UAAUN,IADzB,EAEG4B,OAFH,CAEW9C,EAAEe,KAAF,CAAQA,MAAME,MAAd,EAAsB2B,aAAtB,CAFX;AAGD;AACF,KAnMoB;;AAAA,aAqMdH,qBArMc,kCAqMQP,OArMR,EAqMiB;AACpC,UAAIM,eAAJ;AACA,UAAM8C,WAAWC,KAAKC,sBAAL,CAA4BtD,OAA5B,CAAjB;;AAEA,UAAIoD,QAAJ,EAAc;AACZ9C,iBAASxC,EAAEsF,QAAF,EAAY,CAAZ,CAAT;AACD;;AAED,aAAO9C,UAAUN,QAAQiD,UAAzB;AACD,KA9MoB;;AAAA,aAgNdM,sBAhNc,mCAgNSnB,KAhNT,EAgNgB;AACnC,UAAI,CAACzD,eAAe+D,IAAf,CAAoBN,MAAMC,KAA1B,CAAD,IACD,kBAAkBK,IAAlB,CAAuBN,MAAMO,MAAN,CAAaC,OAApC,CADH,EACiD;AAC/C;AACD;;AAEDR,YAAMoB,cAAN;AACApB,YAAMqB,eAAN;;AAEA,UAAI,KAAKrD,QAAL,IAAiBtC,EAAE,IAAF,EAAQuC,QAAR,CAAiBf,UAAUE,QAA3B,CAArB,EAA2D;AACzD;AACD;;AAED,UAAMc,SAAWzC,SAAS0C,qBAAT,CAA+B,IAA/B,CAAjB;AACA,UAAMC,WAAW1C,EAAEwC,MAAF,EAAUD,QAAV,CAAmBf,UAAUN,IAA7B,CAAjB;;AAEA,UAAI,CAACwB,QAAD,IAAa4B,MAAMC,KAAN,KAAgB/D,cAA7B,IACCkC,YAAY4B,MAAMC,KAAN,KAAgB/D,cADjC,EACiD;;AAE/C,YAAI8D,MAAMC,KAAN,KAAgB/D,cAApB,EAAoC;AAClC,cAAM6B,SAASrC,EAAEwC,MAAF,EAAU0C,IAAV,CAAevD,SAASC,WAAxB,EAAqC,CAArC,CAAf;AACA5B,YAAEqC,MAAF,EAAUS,OAAV,CAAkB,OAAlB;AACD;;AAED9C,UAAE,IAAF,EAAQ8C,OAAR,CAAgB,OAAhB;AACA;AACD;;AAED,UAAM8C,QAAQ5F,EAAEwC,MAAF,EAAU0C,IAAV,CAAevD,SAASM,aAAxB,EAAuC4D,GAAvC,EAAd;;AAEA,UAAI,CAACD,MAAMzC,MAAX,EAAmB;AACjB;AACD;;AAED,UAAI2C,QAAQF,MAAMG,OAAN,CAAczB,MAAMO,MAApB,CAAZ;;AAEA,UAAIP,MAAMC,KAAN,KAAgB7D,gBAAhB,IAAoCoF,QAAQ,CAAhD,EAAmD;AAAE;AACnDA;AACD;;AAED,UAAIxB,MAAMC,KAAN,KAAgB5D,kBAAhB,IAAsCmF,QAAQF,MAAMzC,MAAN,GAAe,CAAjE,EAAoE;AAAE;AACpE2C;AACD;;AAED,UAAIA,QAAQ,CAAZ,EAAe;AACbA,gBAAQ,CAAR;AACD;;AAEDF,YAAME,KAAN,EAAarC,KAAb;AACD,KAjQoB;;AAAA;AAAA;AAAA,0BAoEA;AACnB,eAAOvD,OAAP;AACD;AAtEoB;;AAAA;AAAA;;AAsQvB;;;;;;AAMAF,IAAEgD,QAAF,EACGQ,EADH,CACMzC,MAAMQ,gBADZ,EAC8BI,SAASC,WADvC,EACqD7B,SAAS0F,sBAD9D,EAEGjC,EAFH,CAEMzC,MAAMQ,gBAFZ,EAE8BI,SAASG,SAFvC,EAEqD/B,SAAS0F,sBAF9D,EAGGjC,EAHH,CAGMzC,MAAMQ,gBAHZ,EAG8BI,SAASI,YAHvC,EAGqDhC,SAAS0F,sBAH9D,EAIGjC,EAJH,CAISzC,MAAMM,cAJf,SAIiCN,MAAMO,gBAJvC,EAI2DvB,SAAS4C,WAJpE,EAKGa,EALH,CAKMzC,MAAMM,cALZ,EAK4BM,SAASC,WALrC,EAKkD7B,SAASiG,SAAT,CAAmB3D,MALrE,EAMGmB,EANH,CAMMzC,MAAMM,cANZ,EAM4BM,SAASE,UANrC,EAMiD,UAACoE,CAAD,EAAO;AACpDA,MAAEN,eAAF;AACD,GARH;;AAWA;;;;;;AAMA3F,IAAEO,EAAF,CAAKN,IAAL,IAAyBF,SAASgE,gBAAlC;AACA/D,IAAEO,EAAF,CAAKN,IAAL,EAAWiG,WAAX,GAAyBnG,QAAzB;AACAC,IAAEO,EAAF,CAAKN,IAAL,EAAWkG,UAAX,GAAyB,YAAY;AACnCnG,MAAEO,EAAF,CAAKN,IAAL,IAAaK,kBAAb;AACA,WAAOP,SAASgE,gBAAhB;AACD,GAHD;;AAKA,SAAOhE,QAAP;AAED,CAtSgB,CAsSdqG,MAtSc,CAAjB","file":"dropdown.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Dropdown = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'dropdown'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.dropdown'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n const SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\n const ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\n const ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\n const RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\n const REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}|${SPACE_KEYCODE}`)\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUSIN_DATA_API : `focusin${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n BACKDROP : 'dropdown-backdrop',\n DISABLED : 'disabled',\n SHOW : 'show'\n }\n\n const Selector = {\n BACKDROP : '.dropdown-backdrop',\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n ROLE_MENU : '[role=\"menu\"]',\n ROLE_LISTBOX : '[role=\"listbox\"]',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '[role=\"menu\"] li:not(.disabled) a, '\n + '[role=\"listbox\"] li:not(.disabled) a'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Dropdown {\n\n constructor(element) {\n this._element = element\n\n this._addEventListeners()\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n\n // public\n\n toggle() {\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return false\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return false\n }\n\n const relatedTarget = {\n relatedTarget : this\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return false\n }\n\n // set the backdrop only if the dropdown menu will be opened\n if ('ontouchstart' in document.documentElement &&\n !$(parent).closest(Selector.NAVBAR_NAV).length) {\n\n // if mobile we use a backdrop because click events don't delegate\n const dropdown = document.createElement('div')\n dropdown.className = ClassName.BACKDROP\n $(dropdown).insertBefore(this)\n $(dropdown).on('click', Dropdown._clearMenus)\n }\n\n this.focus()\n this.setAttribute('aria-expanded', true)\n\n $(parent).toggleClass(ClassName.SHOW)\n $(parent).trigger($.Event(Event.SHOWN, relatedTarget))\n\n return false\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n }\n\n\n // private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, this.toggle)\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Dropdown(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config].call(this)\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && event.which === RIGHT_MOUSE_BUTTON_WHICH) {\n return\n }\n\n const toggles = $.makeArray($(Selector.DATA_TOGGLE))\n\n for (let i = 0; i < toggles.length; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const relatedTarget = {\n relatedTarget : toggles[i]\n }\n\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'focusin')\n && $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // remove backdrop only if the dropdown menu will be hidden\n const backdrop = $(parent).find(Selector.BACKDROP)[0]\n if (backdrop) {\n backdrop.parentNode.removeChild(backdrop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = $(selector)[0]\n }\n\n return parent || element.parentNode\n }\n\n static _dataApiKeydownHandler(event) {\n if (!REGEXP_KEYDOWN.test(event.which) ||\n /input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive && event.which !== ESCAPE_KEYCODE ||\n isActive && event.which === ESCAPE_KEYCODE) {\n\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = $(parent).find(Selector.DATA_TOGGLE)[0]\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = $(parent).find(Selector.VISIBLE_ITEMS).get()\n\n if (!items.length) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.ROLE_MENU, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.ROLE_LISTBOX, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.FOCUSIN_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, Dropdown.prototype.toggle)\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Dropdown._jQueryInterface\n $.fn[NAME].Constructor = Dropdown\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n }\n\n return Dropdown\n\n})(jQuery)\n\nexport default Dropdown\n"]} \ No newline at end of file
diff --git a/js/dist/modal.js b/js/dist/modal.js
index 73d203eda..9c661e7e2 100644
--- a/js/dist/modal.js
+++ b/js/dist/modal.js
@@ -69,7 +69,8 @@ var Modal = function ($) {
DIALOG: '.modal-dialog',
DATA_TOGGLE: '[data-toggle="modal"]',
DATA_DISMISS: '[data-dismiss="modal"]',
- FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'
+ FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
+ NAVBAR_TOGGLER: '.navbar-toggler'
};
/**
@@ -89,7 +90,6 @@ var Modal = function ($) {
this._isShown = false;
this._isBodyOverflowing = false;
this._ignoreBackdropClick = false;
- this._isTransitioning = false;
this._originalBodyPadding = 0;
this._scrollbarWidth = 0;
}
@@ -106,12 +106,13 @@ var Modal = function ($) {
var _this = this;
if (this._isTransitioning) {
- throw new Error('Modal is transitioning');
+ return;
}
if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
this._isTransitioning = true;
}
+
var showEvent = $.Event(Event.SHOW, {
relatedTarget: relatedTarget
});
@@ -156,16 +157,18 @@ var Modal = function ($) {
event.preventDefault();
}
- if (this._isTransitioning) {
- throw new Error('Modal is transitioning');
+ if (this._isTransitioning || !this._isShown) {
+ return;
}
var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
+
if (transition) {
this._isTransitioning = true;
}
var hideEvent = $.Event(Event.HIDE);
+
$(this._element).trigger(hideEvent);
if (!this._isShown || hideEvent.isDefaultPrevented()) {
@@ -185,6 +188,7 @@ var Modal = function ($) {
$(this._dialog).off(Event.MOUSEDOWN_DISMISS);
if (transition) {
+
$(this._element).one(Util.TRANSITION_END, function (event) {
return _this2._hideModal(event);
}).emulateTransitionEnd(TRANSITION_DURATION);
@@ -205,10 +209,13 @@ var Modal = function ($) {
this._isShown = null;
this._isBodyOverflowing = null;
this._ignoreBackdropClick = null;
- this._originalBodyPadding = null;
this._scrollbarWidth = null;
};
+ Modal.prototype.handleUpdate = function handleUpdate() {
+ this._adjustDialog();
+ };
+
// private
Modal.prototype._getConfig = function _getConfig(config) {
@@ -290,7 +297,7 @@ var Modal = function ($) {
if (this._isShown) {
$(window).on(Event.RESIZE, function (event) {
- return _this6._handleUpdate(event);
+ return _this6.handleUpdate(event);
});
} else {
$(window).off(Event.RESIZE);
@@ -301,7 +308,7 @@ var Modal = function ($) {
var _this7 = this;
this._element.style.display = 'none';
- this._element.setAttribute('aria-hidden', 'true');
+ this._element.setAttribute('aria-hidden', true);
this._isTransitioning = false;
this._showBackdrop(function () {
$(document.body).removeClass(ClassName.OPEN);
@@ -391,10 +398,6 @@ var Modal = function ($) {
// todo (fat): these should probably be refactored out of modal.js
// ----------------------------------------------------------------------
- Modal.prototype._handleUpdate = function _handleUpdate() {
- this._adjustDialog();
- };
-
Modal.prototype._adjustDialog = function _adjustDialog() {
var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
@@ -418,17 +421,55 @@ var Modal = function ($) {
};
Modal.prototype._setScrollbar = function _setScrollbar() {
- var bodyPadding = parseInt($(Selector.FIXED_CONTENT).css('padding-right') || 0, 10);
-
- this._originalBodyPadding = document.body.style.paddingRight || '';
+ var _this9 = this;
if (this._isBodyOverflowing) {
- document.body.style.paddingRight = bodyPadding + this._scrollbarWidth + 'px';
+ // Note: DOMNode.style.paddingRight returns the actual value or '' if not set
+ // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set
+
+ // Adjust fixed content padding
+ $(Selector.FIXED_CONTENT).each(function (index, element) {
+ var actualPadding = $(element)[0].style.paddingRight;
+ var calculatedPadding = $(element).css('padding-right');
+ $(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + 'px');
+ });
+
+ // Adjust navbar-toggler margin
+ $(Selector.NAVBAR_TOGGLER).each(function (index, element) {
+ var actualMargin = $(element)[0].style.marginRight;
+ var calculatedMargin = $(element).css('margin-right');
+ $(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + 'px');
+ });
+
+ // Adjust body padding
+ var actualPadding = document.body.style.paddingRight;
+ var calculatedPadding = $('body').css('padding-right');
+ $('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + 'px');
}
};
Modal.prototype._resetScrollbar = function _resetScrollbar() {
- document.body.style.paddingRight = this._originalBodyPadding;
+ // Restore fixed content padding
+ $(Selector.FIXED_CONTENT).each(function (index, element) {
+ var padding = $(element).data('padding-right');
+ if (typeof padding !== 'undefined') {
+ $(element).css('padding-right', padding).removeData('padding-right');
+ }
+ });
+
+ // Restore navbar-toggler margin
+ $(Selector.NAVBAR_TOGGLER).each(function (index, element) {
+ var margin = $(element).data('margin-right');
+ if (typeof margin !== 'undefined') {
+ $(element).css('margin-right', margin).removeData('margin-right');
+ }
+ });
+
+ // Restore body padding
+ var padding = $('body').data('padding-right');
+ if (typeof padding !== 'undefined') {
+ $('body').css('padding-right', padding).removeData('padding-right');
+ }
};
Modal.prototype._getScrollbarWidth = function _getScrollbarWidth() {
@@ -436,7 +477,7 @@ var Modal = function ($) {
var scrollDiv = document.createElement('div');
scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
document.body.appendChild(scrollDiv);
- var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
+ var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
document.body.removeChild(scrollDiv);
return scrollbarWidth;
};
@@ -486,7 +527,7 @@ var Modal = function ($) {
*/
$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
- var _this9 = this;
+ var _this10 = this;
var target = void 0;
var selector = Util.getSelectorFromElement(this);
@@ -508,8 +549,8 @@ var Modal = function ($) {
}
$target.one(Event.HIDDEN, function () {
- if ($(_this9).is(':visible')) {
- _this9.focus();
+ if ($(_this10).is(':visible')) {
+ _this10.focus();
}
});
});
diff --git a/js/dist/modal.js.map b/js/dist/modal.js.map
index d4b739b0d..054b33c22 100644
--- a/js/dist/modal.js.map
+++ b/js/dist/modal.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../src/modal.js"],"names":["Modal","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","ESCAPE_KEYCODE","Default","backdrop","keyboard","focus","show","DefaultType","Event","HIDE","HIDDEN","SHOW","SHOWN","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","CLICK_DATA_API","ClassName","SCROLLBAR_MEASURER","BACKDROP","OPEN","FADE","Selector","DIALOG","DATA_TOGGLE","DATA_DISMISS","FIXED_CONTENT","element","config","_config","_getConfig","_element","_dialog","find","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_isTransitioning","_originalBodyPadding","_scrollbarWidth","toggle","relatedTarget","hide","Error","Util","supportsTransitionEnd","hasClass","showEvent","trigger","isDefaultPrevented","_checkScrollbar","_setScrollbar","document","body","addClass","_setEscapeEvent","_setResizeEvent","on","event","one","target","is","_showBackdrop","_showElement","preventDefault","transition","hideEvent","off","removeClass","TRANSITION_END","_hideModal","emulateTransitionEnd","dispose","removeData","window","extend","typeCheckConfig","parentNode","nodeType","Node","ELEMENT_NODE","appendChild","style","display","removeAttribute","scrollTop","reflow","_enforceFocus","shownEvent","transitionComplete","has","length","which","_handleUpdate","setAttribute","_resetAdjustments","_resetScrollbar","_removeBackdrop","remove","callback","animate","doAnimate","createElement","className","appendTo","currentTarget","callbackRemove","_adjustDialog","isModalOverflowing","scrollHeight","documentElement","clientHeight","paddingLeft","paddingRight","clientWidth","innerWidth","_getScrollbarWidth","bodyPadding","parseInt","css","scrollDiv","scrollbarWidth","offsetWidth","removeChild","_jQueryInterface","each","data","undefined","selector","getSelectorFromElement","tagName","$target","call","Constructor","noConflict","jQuery"],"mappings":"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","file":"modal.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 300\n const BACKDROP_TRANSITION_DURATION = 150\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = $(element).find(Selector.DIALOG)[0]\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._originalBodyPadding = 0\n this._scrollbarWidth = 0\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\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._isTransitioning) {\n throw new Error('Modal is transitioning')\n }\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(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._isTransitioning) {\n throw new Error('Modal is transitioning')\n }\n\n const transition = Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)\n if (transition) {\n this._isTransitioning = true\n }\n\n const hideEvent = $.Event(Event.HIDE)\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_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._originalBodyPadding = null\n this._scrollbarWidth = null\n }\n\n\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // don't move modals 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.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n !$(this._element).has(event.target).length) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n this.hide()\n }\n })\n\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this._handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', 'true')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE) ?\n ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n const doAnimate = Util.supportsTransitionEnd() && animate\n\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n $(this._backdrop).addClass(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (doAnimate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!doAnimate) {\n callback()\n return\n }\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)) {\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n } else {\n callbackRemove()\n }\n\n } else if (callback) {\n callback()\n }\n }\n\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _handleUpdate() {\n this._adjustDialog()\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 this._isBodyOverflowing = document.body.clientWidth < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n const bodyPadding = parseInt(\n $(Selector.FIXED_CONTENT).css('padding-right') || 0,\n 10\n )\n\n this._originalBodyPadding = document.body.style.paddingRight || ''\n\n if (this._isBodyOverflowing) {\n document.body.style.paddingRight =\n `${bodyPadding + this._scrollbarWidth}px`\n }\n }\n\n _resetScrollbar() {\n document.body.style.paddingRight = this._originalBodyPadding\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = $.extend(\n {},\n Modal.Default,\n $(this).data(),\n typeof config === 'object' && config\n )\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = $(selector)[0]\n }\n\n const config = $(target).data(DATA_KEY) ?\n 'toggle' : $.extend({}, $(target).data(), $(this).data())\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n\n})(jQuery)\n\nexport default Modal\n"]} \ No newline at end of file
+{"version":3,"sources":["../src/modal.js"],"names":["Modal","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","ESCAPE_KEYCODE","Default","backdrop","keyboard","focus","show","DefaultType","Event","HIDE","HIDDEN","SHOW","SHOWN","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","CLICK_DATA_API","ClassName","SCROLLBAR_MEASURER","BACKDROP","OPEN","FADE","Selector","DIALOG","DATA_TOGGLE","DATA_DISMISS","FIXED_CONTENT","NAVBAR_TOGGLER","element","config","_config","_getConfig","_element","_dialog","find","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_originalBodyPadding","_scrollbarWidth","toggle","relatedTarget","hide","_isTransitioning","Util","supportsTransitionEnd","hasClass","showEvent","trigger","isDefaultPrevented","_checkScrollbar","_setScrollbar","document","body","addClass","_setEscapeEvent","_setResizeEvent","on","event","one","target","is","_showBackdrop","_showElement","preventDefault","transition","hideEvent","off","removeClass","TRANSITION_END","_hideModal","emulateTransitionEnd","dispose","removeData","window","handleUpdate","_adjustDialog","extend","typeCheckConfig","parentNode","nodeType","Node","ELEMENT_NODE","appendChild","style","display","removeAttribute","scrollTop","reflow","_enforceFocus","shownEvent","transitionComplete","has","length","which","setAttribute","_resetAdjustments","_resetScrollbar","_removeBackdrop","remove","callback","animate","doAnimate","createElement","className","appendTo","currentTarget","callbackRemove","isModalOverflowing","scrollHeight","documentElement","clientHeight","paddingLeft","paddingRight","clientWidth","innerWidth","_getScrollbarWidth","each","index","actualPadding","calculatedPadding","css","data","parseFloat","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","getBoundingClientRect","width","removeChild","_jQueryInterface","undefined","Error","selector","getSelectorFromElement","tagName","$target","call","Constructor","noConflict","jQuery"],"mappings":"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","file":"modal.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Modal = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'modal'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.modal'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 300\n const BACKDROP_TRANSITION_DURATION = 150\n const ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\n const Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n }\n\n const DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DIALOG : '.modal-dialog',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n NAVBAR_TOGGLER : '.navbar-toggler'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Modal {\n\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = $(element).find(Selector.DIALOG)[0]\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._originalBodyPadding = 0\n this._scrollbarWidth = 0\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\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._isTransitioning) {\n return\n }\n\n if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n $(document.body).addClass(ClassName.OPEN)\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(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._isTransitioning || !this._isShown) {\n return\n }\n\n const transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n if (transition) {\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n $(window, document, this._element, this._backdrop).off(EVENT_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._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // don't move modals 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.scrollTop = 0\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n !$(this._element).has(event.target).length) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n this.hide()\n }\n })\n\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE) ?\n ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n const doAnimate = Util.supportsTransitionEnd() && animate\n\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n $(this._backdrop).addClass(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (doAnimate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!doAnimate) {\n callback()\n return\n }\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.FADE)) {\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)\n } else {\n callbackRemove()\n }\n\n } else if (callback) {\n callback()\n }\n }\n\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n this._isBodyOverflowing = document.body.clientWidth < 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 $(Selector.FIXED_CONTENT).each((index, element) => {\n const actualPadding = $(element)[0].style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element).data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust navbar-toggler margin\n $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n const actualMargin = $(element)[0].style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element).data('margin-right', actualMargin).css('margin-right', `${parseFloat(calculatedMargin) + this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $('body').css('padding-right')\n $('body').data('padding-right', actualPadding).css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n $(Selector.FIXED_CONTENT).each((index, element) => {\n const padding = $(element).data('padding-right')\n if (typeof padding !== 'undefined') {\n $(element).css('padding-right', padding).removeData('padding-right')\n }\n })\n\n // Restore navbar-toggler margin\n $(Selector.NAVBAR_TOGGLER).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $('body').data('padding-right')\n if (typeof padding !== 'undefined') {\n $('body').css('padding-right', padding).removeData('padding-right')\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n\n // static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = $.extend(\n {},\n Modal.Default,\n $(this).data(),\n typeof config === 'object' && config\n )\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = $(selector)[0]\n }\n\n const config = $(target).data(DATA_KEY) ?\n 'toggle' : $.extend({}, $(target).data(), $(this).data())\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Modal._jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n }\n\n return Modal\n\n})(jQuery)\n\nexport default Modal\n"]} \ No newline at end of file
diff --git a/js/dist/scrollspy.js b/js/dist/scrollspy.js
index 52cf3de3b..e8be562ec 100644
--- a/js/dist/scrollspy.js
+++ b/js/dist/scrollspy.js
@@ -47,18 +47,15 @@ var ScrollSpy = function ($) {
var ClassName = {
DROPDOWN_ITEM: 'dropdown-item',
DROPDOWN_MENU: 'dropdown-menu',
- NAV_LINK: 'nav-link',
- NAV: 'nav',
ACTIVE: 'active'
};
var Selector = {
DATA_SPY: '[data-spy="scroll"]',
ACTIVE: '.active',
- LIST_ITEM: '.list-item',
- LI: 'li',
- LI_DROPDOWN: 'li.dropdown',
+ NAV_LIST_GROUP: '.nav, .list-group',
NAV_LINKS: '.nav-link',
+ LIST_ITEMS: '.list-group-item',
DROPDOWN: '.dropdown',
DROPDOWN_ITEMS: '.dropdown-item',
DROPDOWN_TOGGLE: '.dropdown-toggle'
@@ -84,7 +81,7 @@ var ScrollSpy = function ($) {
this._element = element;
this._scrollElement = element.tagName === 'BODY' ? window : element;
this._config = this._getConfig(config);
- this._selector = this._config.target + ' ' + Selector.NAV_LINKS + ',' + (this._config.target + ' ' + Selector.DROPDOWN_ITEMS);
+ this._selector = this._config.target + ' ' + Selector.NAV_LINKS + ',' + (this._config.target + ' ' + Selector.LIST_ITEMS + ',') + (this._config.target + ' ' + Selector.DROPDOWN_ITEMS);
this._offsets = [];
this._targets = [];
this._activeTarget = null;
@@ -126,9 +123,12 @@ var ScrollSpy = function ($) {
target = $(targetSelector)[0];
}
- if (target && (target.offsetWidth || target.offsetHeight)) {
- // todo (fat): remove sketch reliance on jQuery position/offset
- return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
+ if (target) {
+ var targetBCR = target.getBoundingClientRect();
+ if (targetBCR.width || targetBCR.height) {
+ // todo (fat): remove sketch reliance on jQuery position/offset
+ return [$(target)[offsetMethod]().top + offsetBase, targetSelector];
+ }
}
return null;
}).filter(function (item) {
@@ -183,7 +183,7 @@ var ScrollSpy = function ($) {
};
ScrollSpy.prototype._getOffsetHeight = function _getOffsetHeight() {
- return this._scrollElement === window ? window.innerHeight : this._scrollElement.offsetHeight;
+ return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;
};
ScrollSpy.prototype._process = function _process() {
@@ -235,9 +235,11 @@ var ScrollSpy = function ($) {
$link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
$link.addClass(ClassName.ACTIVE);
} else {
- // todo (fat) this is kinda sus...
- // recursively add actives to tested nav-links
- $link.parents(Selector.LI).find('> ' + Selector.NAV_LINKS).addClass(ClassName.ACTIVE);
+ // Set triggered link as active
+ $link.addClass(ClassName.ACTIVE);
+ // Set triggered links parents as active
+ // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor
+ $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ', ' + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE);
}
$(this._scrollElement).trigger(Event.ACTIVATE, {
diff --git a/js/dist/scrollspy.js.map b/js/dist/scrollspy.js.map
index d02dc8993..425344d44 100644
--- a/js/dist/scrollspy.js.map
+++ b/js/dist/scrollspy.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../src/scrollspy.js"],"names":["ScrollSpy","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","Default","offset","method","target","DefaultType","Event","ACTIVATE","SCROLL","LOAD_DATA_API","ClassName","DROPDOWN_ITEM","DROPDOWN_MENU","NAV_LINK","NAV","ACTIVE","Selector","DATA_SPY","LIST_ITEM","LI","LI_DROPDOWN","NAV_LINKS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","element","config","_element","_scrollElement","tagName","window","_config","_getConfig","_selector","_offsets","_targets","_activeTarget","_scrollHeight","on","event","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","makeArray","map","targetSelector","Util","getSelectorFromElement","offsetWidth","offsetHeight","top","filter","item","sort","a","b","forEach","push","dispose","removeData","off","extend","id","attr","getUID","typeCheckConfig","pageYOffset","scrollTop","scrollHeight","Math","max","document","body","documentElement","_getOffsetHeight","innerHeight","maxScroll","length","_activate","_clear","i","isActiveTarget","undefined","queries","split","selector","$link","join","hasClass","closest","find","addClass","parents","trigger","relatedTarget","removeClass","_jQueryInterface","each","data","Error","scrollSpys","$spy","call","Constructor","noConflict","jQuery"],"mappings":"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","file":"scrollspy.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.scrollspy'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n offset : 10,\n method : 'auto',\n target : ''\n }\n\n const DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n }\n\n const Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n NAV_LINK : 'nav-link',\n NAV : 'nav',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n LIST_ITEM : '.list-item',\n LI : 'li',\n LI_DROPDOWN : 'li.dropdown',\n NAV_LINKS : '.nav-link',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n }\n\n const OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\n\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.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n\n // public\n\n refresh() {\n const autoMethod = this._scrollElement !== this._scrollElement.window ?\n OffsetMethod.POSITION : OffsetMethod.OFFSET\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = $.makeArray($(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = $(targetSelector)[0]\n }\n\n if (target && (target.offsetWidth || target.offsetHeight)) {\n // todo (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\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 $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(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\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight : this._scrollElement.offsetHeight\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset\n + scrollHeight\n - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i]\n && scrollTop >= this._offsets[i]\n && (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 let queries = this._selector.split(',')\n queries = queries.map((selector) => {\n return `${selector}[data-target=\"${target}\"],` +\n `${selector}[href=\"${target}\"]`\n })\n\n const $link = $(queries.join(','))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // todo (fat) this is kinda sus...\n // recursively add actives to tested nav-links\n $link.parents(Selector.LI).find(`> ${Selector.NAV_LINKS}`).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n for (let i = scrollSpys.length; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n\n})(jQuery)\n\nexport default ScrollSpy\n"]} \ No newline at end of file
+{"version":3,"sources":["../src/scrollspy.js"],"names":["ScrollSpy","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","Default","offset","method","target","DefaultType","Event","ACTIVATE","SCROLL","LOAD_DATA_API","ClassName","DROPDOWN_ITEM","DROPDOWN_MENU","ACTIVE","Selector","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","element","config","_element","_scrollElement","tagName","window","_config","_getConfig","_selector","_offsets","_targets","_activeTarget","_scrollHeight","on","event","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","makeArray","map","targetSelector","Util","getSelectorFromElement","targetBCR","getBoundingClientRect","width","height","top","filter","item","sort","a","b","forEach","push","dispose","removeData","off","extend","id","attr","getUID","typeCheckConfig","pageYOffset","scrollTop","scrollHeight","Math","max","document","body","documentElement","_getOffsetHeight","innerHeight","maxScroll","length","_activate","_clear","i","isActiveTarget","undefined","queries","split","selector","$link","join","hasClass","closest","find","addClass","parents","prev","trigger","relatedTarget","removeClass","_jQueryInterface","each","data","Error","scrollSpys","$spy","call","Constructor","noConflict","jQuery"],"mappings":"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","file":"scrollspy.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst ScrollSpy = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'scrollspy'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.scrollspy'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = {\n offset : 10,\n method : 'auto',\n target : ''\n }\n\n const DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n }\n\n const Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n }\n\n const Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n }\n\n const OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class ScrollSpy {\n\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},`\n + `${this._config.target} ${Selector.LIST_ITEMS},`\n + `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n\n // public\n\n refresh() {\n const autoMethod = this._scrollElement !== this._scrollElement.window ?\n OffsetMethod.POSITION : OffsetMethod.OFFSET\n\n const offsetMethod = this._config.method === 'auto' ?\n autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION ?\n this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = $.makeArray($(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = $(targetSelector)[0]\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // todo (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(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\n // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window ?\n this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window ?\n window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset\n + scrollHeight\n - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i]\n && scrollTop >= this._offsets[i]\n && (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 let queries = this._selector.split(',')\n queries = queries.map((selector) => {\n return `${selector}[data-target=\"${target}\"],` +\n `${selector}[href=\"${target}\"]`\n })\n\n const $link = $(queries.join(','))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\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 $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = $.makeArray($(Selector.DATA_SPY))\n\n for (let i = scrollSpys.length; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = ScrollSpy._jQueryInterface\n $.fn[NAME].Constructor = ScrollSpy\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n }\n\n return ScrollSpy\n\n})(jQuery)\n\nexport default ScrollSpy\n"]} \ No newline at end of file
diff --git a/js/dist/tab.js b/js/dist/tab.js
index eedbc3f8e..3e141fadd 100644
--- a/js/dist/tab.js
+++ b/js/dist/tab.js
@@ -42,14 +42,10 @@ var Tab = function ($) {
};
var Selector = {
- A: 'a',
- LI: 'li',
DROPDOWN: '.dropdown',
- LIST: 'ul:not(.dropdown-menu), ol:not(.dropdown-menu), nav:not(.dropdown-menu)',
- FADE_CHILD: '> .nav-item .fade, > .fade',
+ NAV_LIST_GROUP: '.nav, .list-group',
ACTIVE: '.active',
- ACTIVE_CHILD: '> .nav-item > .active, > .active',
- DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"]',
+ DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
DROPDOWN_TOGGLE: '.dropdown-toggle',
DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
};
@@ -80,7 +76,7 @@ var Tab = function ($) {
var target = void 0;
var previous = void 0;
- var listElement = $(this._element).closest(Selector.LIST)[0];
+ var listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0];
var selector = Util.getSelectorFromElement(this._element);
if (listElement) {
@@ -142,8 +138,8 @@ var Tab = function ($) {
Tab.prototype._activate = function _activate(element, container, callback) {
var _this2 = this;
- var active = $(container).find(Selector.ACTIVE_CHILD)[0];
- var isTransitioning = callback && Util.supportsTransitionEnd() && (active && $(active).hasClass(ClassName.FADE) || Boolean($(container).find(Selector.FADE_CHILD)[0]));
+ var active = $(container).find(Selector.ACTIVE)[0];
+ var isTransitioning = callback && Util.supportsTransitionEnd() && active && $(active).hasClass(ClassName.FADE);
var complete = function complete() {
return _this2._transitionComplete(element, active, isTransitioning, callback);
diff --git a/js/dist/tab.js.map b/js/dist/tab.js.map
index 01047d473..80117e026 100644
--- a/js/dist/tab.js.map
+++ b/js/dist/tab.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../src/tab.js"],"names":["Tab","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK_DATA_API","ClassName","DROPDOWN_MENU","ACTIVE","DISABLED","FADE","Selector","A","LI","DROPDOWN","LIST","FADE_CHILD","ACTIVE_CHILD","DATA_TOGGLE","DROPDOWN_TOGGLE","DROPDOWN_ACTIVE_CHILD","element","_element","show","parentNode","nodeType","Node","ELEMENT_NODE","hasClass","target","previous","listElement","closest","selector","Util","getSelectorFromElement","makeArray","find","length","hideEvent","relatedTarget","showEvent","trigger","isDefaultPrevented","_activate","complete","hiddenEvent","shownEvent","dispose","removeClass","container","callback","active","isTransitioning","supportsTransitionEnd","Boolean","_transitionComplete","one","TRANSITION_END","emulateTransitionEnd","dropdownChild","setAttribute","addClass","reflow","dropdownElement","_jQueryInterface","config","each","$this","data","undefined","Error","document","on","event","preventDefault","call","Constructor","noConflict","jQuery"],"mappings":"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","file":"tab.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n A : 'a',\n LI : 'li',\n DROPDOWN : '.dropdown',\n LIST : 'ul:not(.dropdown-menu), ol:not(.dropdown-menu), nav:not(.dropdown-menu)',\n FADE_CHILD : '> .nav-item .fade, > .fade',\n ACTIVE : '.active',\n ACTIVE_CHILD : '> .nav-item > .active, > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n\n constructor(element) {\n this._element = element\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n\n // public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.LIST)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n previous = $.makeArray($(listElement).find(Selector.ACTIVE))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = $(selector)[0]\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeClass(this._element, DATA_KEY)\n this._element = null\n }\n\n\n // private\n\n _activate(element, container, callback) {\n const active = $(container).find(Selector.ACTIVE_CHILD)[0]\n const isTransitioning = callback\n && Util.supportsTransitionEnd()\n && (active && $(active).hasClass(ClassName.FADE)\n || Boolean($(container).find(Selector.FADE_CHILD)[0]))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n isTransitioning,\n callback\n )\n\n if (active && isTransitioning) {\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n } else {\n complete()\n }\n\n if (active) {\n $(active).removeClass(ClassName.SHOW)\n }\n }\n\n _transitionComplete(element, active, isTransitioning, callback) {\n if (active) {\n $(active).removeClass(ClassName.ACTIVE)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n active.setAttribute('aria-expanded', false)\n }\n\n $(element).addClass(ClassName.ACTIVE)\n element.setAttribute('aria-expanded', true)\n\n if (isTransitioning) {\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n } else {\n $(element).removeClass(ClassName.FADE)\n }\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n\n})(jQuery)\n\nexport default Tab\n"]} \ No newline at end of file
+{"version":3,"sources":["../src/tab.js"],"names":["Tab","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK_DATA_API","ClassName","DROPDOWN_MENU","ACTIVE","DISABLED","FADE","Selector","DROPDOWN","NAV_LIST_GROUP","DATA_TOGGLE","DROPDOWN_TOGGLE","DROPDOWN_ACTIVE_CHILD","element","_element","show","parentNode","nodeType","Node","ELEMENT_NODE","hasClass","target","previous","listElement","closest","selector","Util","getSelectorFromElement","makeArray","find","length","hideEvent","relatedTarget","showEvent","trigger","isDefaultPrevented","_activate","complete","hiddenEvent","shownEvent","dispose","removeClass","container","callback","active","isTransitioning","supportsTransitionEnd","_transitionComplete","one","TRANSITION_END","emulateTransitionEnd","dropdownChild","setAttribute","addClass","reflow","dropdownElement","_jQueryInterface","config","each","$this","data","undefined","Error","document","on","event","preventDefault","call","Constructor","noConflict","jQuery"],"mappings":"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","file":"tab.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tab = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tab'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.tab'\n const EVENT_KEY = `.${DATA_KEY}`\n const DATA_API_KEY = '.data-api'\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n }\n\n const ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tab {\n\n constructor(element) {\n this._element = element\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n\n // public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n previous = $.makeArray($(listElement).find(Selector.ACTIVE))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = $(selector)[0]\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeClass(this._element, DATA_KEY)\n this._element = null\n }\n\n\n // private\n\n _activate(element, container, callback) {\n const active = $(container).find(Selector.ACTIVE)[0]\n const isTransitioning = callback\n && Util.supportsTransitionEnd()\n && (active && $(active).hasClass(ClassName.FADE))\n\n const complete = () => this._transitionComplete(\n element,\n active,\n isTransitioning,\n callback\n )\n\n if (active && isTransitioning) {\n $(active)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n } else {\n complete()\n }\n\n if (active) {\n $(active).removeClass(ClassName.SHOW)\n }\n }\n\n _transitionComplete(element, active, isTransitioning, callback) {\n if (active) {\n $(active).removeClass(ClassName.ACTIVE)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n active.setAttribute('aria-expanded', false)\n }\n\n $(element).addClass(ClassName.ACTIVE)\n element.setAttribute('aria-expanded', true)\n\n if (isTransitioning) {\n Util.reflow(element)\n $(element).addClass(ClassName.SHOW)\n } else {\n $(element).removeClass(ClassName.FADE)\n }\n\n if (element.parentNode &&\n $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n if (dropdownElement) {\n $(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n $(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tab._jQueryInterface\n $.fn[NAME].Constructor = Tab\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n }\n\n return Tab\n\n})(jQuery)\n\nexport default Tab\n"]} \ No newline at end of file
diff --git a/js/dist/tooltip.js b/js/dist/tooltip.js
index a7a9f4226..018ed4aa3 100644
--- a/js/dist/tooltip.js
+++ b/js/dist/tooltip.js
@@ -34,6 +34,7 @@ var Tooltip = function ($) {
var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 150;
var CLASS_PREFIX = 'bs-tether';
+ var TETHER_PREFIX_REGEX = new RegExp('(^|\\s)' + CLASS_PREFIX + '\\S+', 'g');
var Default = {
animation: true,
@@ -125,7 +126,6 @@ var Tooltip = function ($) {
this._timeout = 0;
this._hoverState = '';
this._activeTrigger = {};
- this._isTransitioning = false;
this._tether = null;
// protected
@@ -214,9 +214,6 @@ var Tooltip = function ($) {
var showEvent = $.Event(this.constructor.Event.SHOW);
if (this.isWithContent() && this._isEnabled) {
- if (this._isTransitioning) {
- throw new Error('Tooltip is transitioning');
- }
$(this.element).trigger(showEvent);
var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element);
@@ -243,7 +240,11 @@ var Tooltip = function ($) {
var container = this.config.container === false ? document.body : $(this.config.container);
- $(tip).data(this.constructor.DATA_KEY, this).appendTo(container);
+ $(tip).data(this.constructor.DATA_KEY, this);
+
+ if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {
+ $(tip).appendTo(container);
+ }
$(this.element).trigger(this.constructor.Event.INSERTED);
@@ -266,7 +267,6 @@ var Tooltip = function ($) {
var complete = function complete() {
var prevHoverState = _this._hoverState;
_this._hoverState = null;
- _this._isTransitioning = false;
$(_this.element).trigger(_this.constructor.Event.SHOWN);
@@ -276,7 +276,6 @@ var Tooltip = function ($) {
};
if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
- this._isTransitioning = true;
$(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
return;
}
@@ -290,17 +289,14 @@ var Tooltip = function ($) {
var tip = this.getTipElement();
var hideEvent = $.Event(this.constructor.Event.HIDE);
- if (this._isTransitioning) {
- throw new Error('Tooltip is transitioning');
- }
var complete = function complete() {
if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
tip.parentNode.removeChild(tip);
}
+ _this2._cleanTipClass();
_this2.element.removeAttribute('aria-describedby');
$(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
- _this2._isTransitioning = false;
_this2.cleanupTether();
if (callback) {
@@ -321,7 +317,7 @@ var Tooltip = function ($) {
this._activeTrigger[Trigger.HOVER] = false;
if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
- this._isTransitioning = true;
+
$(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
} else {
complete();
@@ -388,6 +384,14 @@ var Tooltip = function ($) {
return AttachmentMap[placement.toUpperCase()];
};
+ Tooltip.prototype._cleanTipClass = function _cleanTipClass() {
+ var $tip = $(this.getTipElement());
+ var tabClass = $tip.attr('class').match(TETHER_PREFIX_REGEX);
+ if (tabClass !== null && tabClass.length > 0) {
+ $tip.removeClass(tabClass.join(''));
+ }
+ };
+
Tooltip.prototype._setListeners = function _setListeners() {
var _this3 = this;
@@ -521,6 +525,14 @@ var Tooltip = function ($) {
};
}
+ if (config.title && typeof config.title === 'number') {
+ config.title = config.title.toString();
+ }
+
+ if (config.content && typeof config.content === 'number') {
+ config.content = config.content.toString();
+ }
+
Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
return config;
diff --git a/js/dist/tooltip.js.map b/js/dist/tooltip.js.map
index 06d71e2a3..3b8157621 100644
--- a/js/dist/tooltip.js.map
+++ b/js/dist/tooltip.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../src/tooltip.js"],"names":["Tooltip","$","Tether","Error","NAME","VERSION","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","CLASS_PREFIX","Default","animation","template","trigger","title","delay","html","selector","placement","offset","constraints","container","DefaultType","AttachmentMap","TOP","RIGHT","BOTTOM","LEFT","HoverState","SHOW","OUT","Event","HIDE","HIDDEN","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","ClassName","FADE","Selector","TOOLTIP","TOOLTIP_INNER","TetherClass","element","enabled","Trigger","HOVER","FOCUS","MANUAL","config","_isEnabled","_timeout","_hoverState","_activeTrigger","_isTransitioning","_tether","_getConfig","tip","_setListeners","enable","disable","toggleEnabled","toggle","event","dataKey","constructor","context","currentTarget","data","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","hasClass","dispose","clearTimeout","cleanupTether","removeData","off","closest","remove","show","css","showEvent","isWithContent","isInTheDom","contains","ownerDocument","documentElement","isDefaultPrevented","tipId","Util","getUID","setAttribute","setContent","addClass","call","attachment","_getAttachment","document","body","appendTo","target","classes","classPrefix","addTargetClasses","reflow","position","complete","prevHoverState","supportsTransitionEnd","one","TRANSITION_END","emulateTransitionEnd","_TRANSITION_DURATION","hide","callback","hideEvent","parentNode","removeChild","removeAttribute","removeClass","Boolean","getTitle","$tip","setElementContent","find","$element","content","nodeType","jquery","parent","is","empty","append","text","getAttribute","destroy","toUpperCase","triggers","split","forEach","on","eventIn","eventOut","extend","_fixTitle","titleType","type","setTimeout","typeCheckConfig","key","_jQueryInterface","each","_config","test","undefined","Constructor","noConflict","jQuery"],"mappings":"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","file":"tooltip.js","sourcesContent":["/* global Tether */\n\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n\n /**\n * Check for Tether dependency\n * Tether - http://tether.io/\n */\n if (typeof Tether === 'undefined') {\n throw new Error('Bootstrap tooltips require Tether (http://tether.io/)')\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.tooltip'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n const CLASS_PREFIX = 'bs-tether'\n\n const Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">'\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 0',\n constraints : [],\n container : false\n }\n\n const 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 : 'string',\n constraints : 'array',\n container : '(string|element|boolean)'\n }\n\n const AttachmentMap = {\n TOP : 'bottom center',\n RIGHT : 'middle left',\n BOTTOM : 'top center',\n LEFT : 'middle right'\n }\n\n const HoverState = {\n SHOW : 'show',\n OUT : 'out'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner'\n }\n\n const TetherClass = {\n element : false,\n enabled : false\n }\n\n const Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tooltip {\n\n constructor(element, config) {\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._isTransitioning = false\n this._tether = null\n\n // protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n\n }\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\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 (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(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\n } else {\n\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n this.cleanupTether()\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal')\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n this._tether = null\n\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n if (this._isTransitioning) {\n throw new Error('Tooltip is transitioning')\n }\n $(this.element).trigger(showEvent)\n\n const isInTheDom = $.contains(\n this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.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).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n\n const container = this.config.container === false ? document.body : $(this.config.container)\n\n $(tip)\n .data(this.constructor.DATA_KEY, this)\n .appendTo(container)\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._tether = new Tether({\n attachment,\n element : tip,\n target : this.element,\n classes : TetherClass,\n classPrefix : CLASS_PREFIX,\n offset : this.config.offset,\n constraints : this.config.constraints,\n addTargetClasses: false\n })\n\n Util.reflow(tip)\n this._tether.position()\n\n $(tip).addClass(ClassName.SHOW)\n\n const complete = () => {\n const prevHoverState = this._hoverState\n this._hoverState = null\n this._isTransitioning = false\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(Tooltip._TRANSITION_DURATION)\n return\n }\n\n complete()\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n if (this._isTransitioning) {\n throw new Error('Tooltip is transitioning')\n }\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n this._isTransitioning = false\n this.cleanupTether()\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (Util.supportsTransitionEnd() &&\n $(this.tip).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n\n // protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n return this.tip = this.tip || $(this.config.template)[0]\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n\n this.cleanupTether()\n }\n\n setElementContent($element, content) {\n const html = this.config.html\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // content is a DOM node or a jQuery\n if (html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n } else {\n $element[html ? 'html' : 'text'](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 cleanupTether() {\n if (this._tether) {\n this._tether.destroy()\n }\n }\n\n\n // private\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 $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\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 $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => this.hide()\n )\n })\n\n if (this.config.selector) {\n this.config = $.extend({}, 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 if (this.element.getAttribute('title') ||\n titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(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()).hasClass(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n config = $.extend(\n {},\n this.constructor.Default,\n $(this.element).data(),\n config\n )\n\n if (config.delay && typeof config.delay === 'number') {\n config.delay = {\n show : config.delay,\n hide : config.delay\n }\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\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\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(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 $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n\n return Tooltip\n\n})(jQuery)\n\nexport default Tooltip\n"]} \ No newline at end of file
+{"version":3,"sources":["../src/tooltip.js"],"names":["Tooltip","$","Tether","Error","NAME","VERSION","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","fn","TRANSITION_DURATION","CLASS_PREFIX","TETHER_PREFIX_REGEX","RegExp","Default","animation","template","trigger","title","delay","html","selector","placement","offset","constraints","container","DefaultType","AttachmentMap","TOP","RIGHT","BOTTOM","LEFT","HoverState","SHOW","OUT","Event","HIDE","HIDDEN","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","ClassName","FADE","Selector","TOOLTIP","TOOLTIP_INNER","TetherClass","element","enabled","Trigger","HOVER","FOCUS","MANUAL","config","_isEnabled","_timeout","_hoverState","_activeTrigger","_tether","_getConfig","tip","_setListeners","enable","disable","toggleEnabled","toggle","event","dataKey","constructor","context","currentTarget","data","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","hasClass","dispose","clearTimeout","cleanupTether","removeData","off","closest","remove","show","css","showEvent","isWithContent","isInTheDom","contains","ownerDocument","documentElement","isDefaultPrevented","tipId","Util","getUID","setAttribute","setContent","addClass","call","attachment","_getAttachment","document","body","appendTo","target","classes","classPrefix","addTargetClasses","reflow","position","complete","prevHoverState","supportsTransitionEnd","one","TRANSITION_END","emulateTransitionEnd","_TRANSITION_DURATION","hide","callback","hideEvent","parentNode","removeChild","_cleanTipClass","removeAttribute","removeClass","Boolean","getTitle","$tip","setElementContent","find","$element","content","nodeType","jquery","parent","is","empty","append","text","getAttribute","destroy","toUpperCase","tabClass","attr","match","length","join","triggers","split","forEach","on","eventIn","eventOut","extend","_fixTitle","titleType","type","setTimeout","toString","typeCheckConfig","key","_jQueryInterface","each","_config","test","undefined","Constructor","noConflict","jQuery"],"mappings":"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","file":"tooltip.js","sourcesContent":["/* global Tether */\n\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Tooltip = (($) => {\n\n /**\n * Check for Tether dependency\n * Tether - http://tether.io/\n */\n if (typeof Tether === 'undefined') {\n throw new Error('Bootstrap tooltips require Tether (http://tether.io/)')\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.0.0-alpha.6'\n const DATA_KEY = 'bs.tooltip'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n const TRANSITION_DURATION = 150\n const CLASS_PREFIX = 'bs-tether'\n const TETHER_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\n const Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">'\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 0',\n constraints : [],\n container : false\n }\n\n const 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 : 'string',\n constraints : 'array',\n container : '(string|element|boolean)'\n }\n\n const AttachmentMap = {\n TOP : 'bottom center',\n RIGHT : 'middle left',\n BOTTOM : 'top center',\n LEFT : 'middle right'\n }\n\n const HoverState = {\n SHOW : 'show',\n OUT : 'out'\n }\n\n const Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n }\n\n const ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n }\n\n const Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner'\n }\n\n const TetherClass = {\n element : false,\n enabled : false\n }\n\n const Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Tooltip {\n\n constructor(element, config) {\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._tether = null\n\n // protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n\n }\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\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 (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(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\n } else {\n\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n this.cleanupTether()\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal')\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n this._tether = null\n\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const isInTheDom = $.contains(\n this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.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).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n const attachment = this._getAttachment(placement)\n\n const container = this.config.container === false ? document.body : $(this.config.container)\n\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._tether = new Tether({\n attachment,\n element : tip,\n target : this.element,\n classes : TetherClass,\n classPrefix : CLASS_PREFIX,\n offset : this.config.offset,\n constraints : this.config.constraints,\n addTargetClasses: false\n })\n\n Util.reflow(tip)\n this._tether.position()\n\n $(tip).addClass(ClassName.SHOW)\n\n const complete = () => {\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(Tooltip._TRANSITION_DURATION)\n return\n }\n\n complete()\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n this.cleanupTether()\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if (Util.supportsTransitionEnd() &&\n $(this.tip).hasClass(ClassName.FADE)) {\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(TRANSITION_DURATION)\n\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n\n // protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n getTipElement() {\n return this.tip = this.tip || $(this.config.template)[0]\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n\n this.cleanupTether()\n }\n\n setElementContent($element, content) {\n const html = this.config.html\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // content is a DOM node or a jQuery\n if (html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n } else {\n $element[html ? 'html' : 'text'](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 cleanupTether() {\n if (this._tether) {\n this._tether.destroy()\n }\n }\n\n\n // private\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(TETHER_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\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 $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => this.hide()\n )\n })\n\n if (this.config.selector) {\n this.config = $.extend({}, 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 if (this.element.getAttribute('title') ||\n titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(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()).hasClass(ClassName.SHOW) ||\n context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n config = $.extend(\n {},\n this.constructor.Default,\n $(this.element).data(),\n config\n )\n\n if (config.delay && typeof config.delay === 'number') {\n config.delay = {\n show : config.delay,\n hide : config.delay\n }\n }\n\n if (config.title && typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (config.content && typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\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\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(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 $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (data[config] === undefined) {\n throw new Error(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Tooltip._jQueryInterface\n $.fn[NAME].Constructor = Tooltip\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n }\n\n return Tooltip\n\n})(jQuery)\n\nexport default Tooltip\n"]} \ No newline at end of file
diff --git a/js/dist/util.js b/js/dist/util.js
index 2fda21d53..6eadcc31b 100644
--- a/js/dist/util.js
+++ b/js/dist/util.js
@@ -111,13 +111,16 @@ var Util = function ($) {
},
getSelectorFromElement: function getSelectorFromElement(element) {
var selector = element.getAttribute('data-target');
-
- if (!selector) {
+ if (!selector || selector === '#') {
selector = element.getAttribute('href') || '';
- selector = /^#[a-z]/i.test(selector) ? selector : null;
}
- return selector;
+ try {
+ var $selector = $(selector);
+ return $selector.length > 0 ? selector : null;
+ } catch (error) {
+ return null;
+ }
},
reflow: function reflow(element) {
return element.offsetHeight;
diff --git a/js/dist/util.js.map b/js/dist/util.js.map
index b9d479088..011bc69b8 100644
--- a/js/dist/util.js.map
+++ b/js/dist/util.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../src/util.js"],"names":["Util","$","transition","MAX_UID","TransitionEndEvent","WebkitTransition","MozTransition","OTransition","toType","obj","toString","call","match","toLowerCase","isElement","nodeType","getSpecialTransitionEndEvent","bindType","end","delegateType","handle","event","target","is","handleObj","handler","apply","arguments","undefined","transitionEndTest","window","QUnit","el","document","createElement","name","style","transitionEndEmulator","duration","called","one","TRANSITION_END","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","supportsTransitionEnd","special","getUID","prefix","Math","random","getElementById","getSelectorFromElement","element","selector","getAttribute","test","reflow","offsetHeight","trigger","Boolean","typeCheckConfig","componentName","config","configTypes","property","hasOwnProperty","expectedTypes","value","valueType","RegExp","Error","toUpperCase","jQuery"],"mappings":"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","file":"util.js","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n let transition = false\n\n const MAX_UID = 1000000\n\n const TransitionEndEvent = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n // shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()\n }\n\n function isElement(obj) {\n return (obj[0] || obj).nodeType\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: transition.end,\n delegateType: transition.end,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined\n }\n }\n }\n\n function transitionEndTest() {\n if (window.QUnit) {\n return false\n }\n\n const el = document.createElement('bootstrap')\n\n for (const name in TransitionEndEvent) {\n if (el.style[name] !== undefined) {\n return {\n end: TransitionEndEvent[name]\n }\n }\n }\n\n return false\n }\n\n function transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n }\n\n function setTransitionEndSupport() {\n transition = transitionEndTest()\n\n $.fn.emulateTransitionEnd = transitionEndEmulator\n\n if (Util.supportsTransitionEnd()) {\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n }\n\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector) {\n selector = element.getAttribute('href') || ''\n selector = /^#[a-z]/i.test(selector) ? selector : null\n }\n\n return selector\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(transition.end)\n },\n\n supportsTransitionEnd() {\n return Boolean(transition)\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (configTypes.hasOwnProperty(property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n }\n }\n\n setTransitionEndSupport()\n\n return Util\n\n})(jQuery)\n\nexport default Util\n"]} \ No newline at end of file
+{"version":3,"sources":["../src/util.js"],"names":["Util","$","transition","MAX_UID","TransitionEndEvent","WebkitTransition","MozTransition","OTransition","toType","obj","toString","call","match","toLowerCase","isElement","nodeType","getSpecialTransitionEndEvent","bindType","end","delegateType","handle","event","target","is","handleObj","handler","apply","arguments","undefined","transitionEndTest","window","QUnit","el","document","createElement","name","style","transitionEndEmulator","duration","called","one","TRANSITION_END","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","supportsTransitionEnd","special","getUID","prefix","Math","random","getElementById","getSelectorFromElement","element","selector","getAttribute","$selector","length","error","reflow","offsetHeight","trigger","Boolean","typeCheckConfig","componentName","config","configTypes","property","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","jQuery"],"mappings":"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","file":"util.js","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.6): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n let transition = false\n\n const MAX_UID = 1000000\n\n const TransitionEndEvent = {\n WebkitTransition : 'webkitTransitionEnd',\n MozTransition : 'transitionend',\n OTransition : 'oTransitionEnd otransitionend',\n transition : 'transitionend'\n }\n\n // shoutout AngusCroll (https://goo.gl/pxwQGp)\n function toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase()\n }\n\n function isElement(obj) {\n return (obj[0] || obj).nodeType\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: transition.end,\n delegateType: transition.end,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined\n }\n }\n }\n\n function transitionEndTest() {\n if (window.QUnit) {\n return false\n }\n\n const el = document.createElement('bootstrap')\n\n for (const name in TransitionEndEvent) {\n if (el.style[name] !== undefined) {\n return {\n end: TransitionEndEvent[name]\n }\n }\n }\n\n return false\n }\n\n function transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n }\n\n function setTransitionEndSupport() {\n transition = transitionEndTest()\n\n $.fn.emulateTransitionEnd = transitionEndEmulator\n\n if (Util.supportsTransitionEnd()) {\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n }\n }\n\n\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n const Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n if (!selector || selector === '#') {\n selector = element.getAttribute('href') || ''\n }\n\n try {\n const $selector = $(selector)\n return $selector.length > 0 ? selector : null\n } catch (error) {\n return null\n }\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(transition.end)\n },\n\n supportsTransitionEnd() {\n return Boolean(transition)\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (configTypes.hasOwnProperty(property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n }\n }\n\n setTransitionEndSupport()\n\n return Util\n\n})(jQuery)\n\nexport default Util\n"]} \ No newline at end of file