From: Mark Otto Date: Mon, 28 Nov 2016 21:39:56 +0000 (-0800) Subject: Merge branch 'v4-js-carousel' of https://github.com/J2TeaM/bootstrap into J2TeaM... X-Git-Tag: v4.0.0-alpha.6~365 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=82875586c1ee8d1bc19227bb1e6646a3e87e233d;p=thirdparty%2Fbootstrap.git Merge branch 'v4-js-carousel' of https://github.com/J2TeaM/bootstrap into J2TeaM-v4-js-carousel --- 82875586c1ee8d1bc19227bb1e6646a3e87e233d diff --cc js/dist/carousel.js index f382a641e1,99f3090d97..8b6119a074 --- a/js/dist/carousel.js +++ b/js/dist/carousel.js @@@ -149,279 -151,296 +149,277 @@@ var Carousel = function ($) clearInterval(this._interval); this._interval = null; } - }, { - key: 'cycle', - value: function cycle(event) { - if (!event) { - this._isPaused = false; - } - if (this._interval) { - clearInterval(this._interval); - this._interval = null; - } + if (this._config.interval && !this._isPaused) { + this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval); + } + }; - if (this._config.interval && !this._isPaused) { - this._interval = setInterval($.proxy(document.visibilityState ? this.nextWhenVisible : this.next, this), this._config.interval); - } + Carousel.prototype.to = function to(index) { + var _this = this; + + this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]; + + var activeIndex = this._getItemIndex(this._activeElement); + + if (index > this._items.length - 1 || index < 0) { + return; } - }, { - key: 'to', - value: function to(index) { - var _this = this; - this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]; + if (this._isSliding) { + $(this._element).one(Event.SLID, function () { + return _this.to(index); + }); + return; + } - var activeIndex = this._getItemIndex(this._activeElement); + if (activeIndex === index) { + this.pause(); + this.cycle(); + return; + } - if (index > this._items.length - 1 || index < 0) { - return; - } + var direction = index > activeIndex ? Direction.NEXT : Direction.PREVIOUS; - if (this._isSliding) { - $(this._element).one(Event.SLID, function () { - return _this.to(index); - }); - return; - } + this._slide(direction, this._items[index]); + }; - if (activeIndex === index) { - this.pause(); - this.cycle(); - return; - } + Carousel.prototype.dispose = function dispose() { + $(this._element).off(EVENT_KEY); + $.removeData(this._element, DATA_KEY); - var direction = index > activeIndex ? Direction.NEXT : Direction.PREVIOUS; + this._items = null; + this._config = null; + this._element = null; + this._interval = null; + this._isPaused = null; + this._isSliding = null; + this._activeElement = null; + this._indicatorsElement = null; + }; - this._slide(direction, this._items[index]); - } - }, { - key: 'dispose', - value: function dispose() { - $(this._element).off(EVENT_KEY); - $.removeData(this._element, DATA_KEY); - - this._items = null; - this._config = null; - this._element = null; - this._interval = null; - this._isPaused = null; - this._isSliding = null; - this._activeElement = null; - this._indicatorsElement = null; - } + // private - // private + Carousel.prototype._getConfig = function _getConfig(config) { + config = $.extend({}, Default, config); + Util.typeCheckConfig(NAME, config, DefaultType); + return config; + }; - }, { - key: '_getConfig', - value: function _getConfig(config) { - config = $.extend({}, Default, config); - Util.typeCheckConfig(NAME, config, DefaultType); - return config; + Carousel.prototype._addEventListeners = function _addEventListeners() { + var _this2 = this; + + if (this._config.keyboard) { + $(this._element).on(Event.KEYDOWN, function (event) { + return _this2._keydown(event); + }); } - }, { - key: '_addEventListeners', - value: function _addEventListeners() { - if (this._config.keyboard) { - $(this._element).on(Event.KEYDOWN, $.proxy(this._keydown, this)); - } - if (this._config.pause === 'hover' && !('ontouchstart' in document.documentElement)) { - $(this._element).on(Event.MOUSEENTER, $.proxy(this.pause, this)).on(Event.MOUSELEAVE, $.proxy(this.cycle, this)); - } + if (this._config.pause === 'hover' && !('ontouchstart' in document.documentElement)) { + $(this._element).on(Event.MOUSEENTER, function (event) { + return _this2.pause(event); + }).on(Event.MOUSELEAVE, function (event) { + return _this2.cycle(event); + }); } - }, { - key: '_keydown', - value: function _keydown(event) { - event.preventDefault(); + }; - if (/input|textarea/i.test(event.target.tagName)) { - return; - } + Carousel.prototype._keydown = function _keydown(event) { + if (/input|textarea/i.test(event.target.tagName)) { + return; + } + event.preventDefault(); - switch (event.which) { - case ARROW_LEFT_KEYCODE: - this.prev(); - break; - case ARROW_RIGHT_KEYCODE: - this.next(); - break; - default: - return; - } + switch (event.which) { + case ARROW_LEFT_KEYCODE: + this.prev(); + break; + case ARROW_RIGHT_KEYCODE: + this.next(); + break; + default: + return; } - }, { - key: '_getItemIndex', - value: function _getItemIndex(element) { - this._items = $.makeArray($(element).parent().find(Selector.ITEM)); - return this._items.indexOf(element); + }; + + Carousel.prototype._getItemIndex = function _getItemIndex(element) { + this._items = $.makeArray($(element).parent().find(Selector.ITEM)); + return this._items.indexOf(element); + }; + + Carousel.prototype._getItemByDirection = function _getItemByDirection(direction, activeElement) { + var isNextDirection = direction === Direction.NEXT; + var isPrevDirection = direction === Direction.PREVIOUS; + var activeIndex = this._getItemIndex(activeElement); + var lastItemIndex = this._items.length - 1; + var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex; + + if (isGoingToWrap && !this._config.wrap) { + return activeElement; } - }, { - key: '_getItemByDirection', - value: function _getItemByDirection(direction, activeElement) { - var isNextDirection = direction === Direction.NEXT; - var isPrevDirection = direction === Direction.PREVIOUS; - var activeIndex = this._getItemIndex(activeElement); - var lastItemIndex = this._items.length - 1; - var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex; - - if (isGoingToWrap && !this._config.wrap) { - return activeElement; - } - var delta = direction === Direction.PREVIOUS ? -1 : 1; - var itemIndex = (activeIndex + delta) % this._items.length; + var delta = direction === Direction.PREVIOUS ? -1 : 1; + var itemIndex = (activeIndex + delta) % this._items.length; - return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; - } - }, { - key: '_triggerSlideEvent', - value: function _triggerSlideEvent(relatedTarget, directionalClassname) { - var slideEvent = $.Event(Event.SLIDE, { - relatedTarget: relatedTarget, - direction: directionalClassname - }); + return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]; + }; - $(this._element).trigger(slideEvent); + Carousel.prototype._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, directionalClassname) { + var slideEvent = $.Event(Event.SLIDE, { + relatedTarget: relatedTarget, + direction: directionalClassname + }); - return slideEvent; - } - }, { - key: '_setActiveIndicatorElement', - value: function _setActiveIndicatorElement(element) { - if (this._indicatorsElement) { - $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE); + $(this._element).trigger(slideEvent); - var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; + return slideEvent; + }; - if (nextIndicator) { - $(nextIndicator).addClass(ClassName.ACTIVE); - } + Carousel.prototype._setActiveIndicatorElement = function _setActiveIndicatorElement(element) { + if (this._indicatorsElement) { + $(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE); + + var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)]; + + if (nextIndicator) { + $(nextIndicator).addClass(ClassName.ACTIVE); } } - }, { - key: '_slide', - value: function _slide(direction, element) { - var _this2 = this; + }; - var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]; - var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); + Carousel.prototype._slide = function _slide(direction, element) { + var _this3 = this; - var isCycling = Boolean(this._interval); + var activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]; + var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement); - var directionalClassName = direction === Direction.NEXT ? ClassName.LEFT : ClassName.RIGHT; + var isCycling = Boolean(this._interval); - if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) { - this._isSliding = false; - return; - } + var directionalClassName = direction === Direction.NEXT ? ClassName.LEFT : ClassName.RIGHT; - var slideEvent = this._triggerSlideEvent(nextElement, directionalClassName); - if (slideEvent.isDefaultPrevented()) { - return; - } + if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) { + this._isSliding = false; + return; + } - if (!activeElement || !nextElement) { - // some weirdness is happening, so we bail - return; - } + var slideEvent = this._triggerSlideEvent(nextElement, directionalClassName); + if (slideEvent.isDefaultPrevented()) { + return; + } - this._isSliding = true; + if (!activeElement || !nextElement) { + // some weirdness is happening, so we bail + return; + } - if (isCycling) { - this.pause(); - } + this._isSliding = true; - this._setActiveIndicatorElement(nextElement); + if (isCycling) { + this.pause(); + } - var slidEvent = $.Event(Event.SLID, { - relatedTarget: nextElement, - direction: directionalClassName - }); + this._setActiveIndicatorElement(nextElement); - if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) { + var slidEvent = $.Event(Event.SLID, { + relatedTarget: nextElement, + direction: directionalClassName + }); - $(nextElement).addClass(direction); + if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.SLIDE)) { - Util.reflow(nextElement); + $(nextElement).addClass(direction); - $(activeElement).addClass(directionalClassName); - $(nextElement).addClass(directionalClassName); + Util.reflow(nextElement); - $(activeElement).one(Util.TRANSITION_END, function () { - $(nextElement).removeClass(directionalClassName).removeClass(direction); + $(activeElement).addClass(directionalClassName); + $(nextElement).addClass(directionalClassName); - $(nextElement).addClass(ClassName.ACTIVE); + $(activeElement).one(Util.TRANSITION_END, function () { - $(nextElement).removeClass(directionalClassName).removeClass(direction); ++ $(nextElement).removeClass(directionalClassName + ' ' + direction).addClass(ClassName.ACTIVE); - $(nextElement).addClass(ClassName.ACTIVE); - - $(activeElement).removeClass(ClassName.ACTIVE).removeClass(direction).removeClass(directionalClassName); - $(activeElement).removeClass(ClassName.ACTIVE).removeClass(direction).removeClass(directionalClassName); ++ $(activeElement).removeClass(ClassName.ACTIVE + ' ' + direction + ' ' + directionalClassName); - _this2._isSliding = false; + _this3._isSliding = false; - setTimeout(function () { - return $(_this2._element).trigger(slidEvent); - }, 0); - }).emulateTransitionEnd(TRANSITION_DURATION); - } else { - $(activeElement).removeClass(ClassName.ACTIVE); - $(nextElement).addClass(ClassName.ACTIVE); + setTimeout(function () { + return $(_this3._element).trigger(slidEvent); + }, 0); + }).emulateTransitionEnd(TRANSITION_DURATION); + } else { + $(activeElement).removeClass(ClassName.ACTIVE); + $(nextElement).addClass(ClassName.ACTIVE); - this._isSliding = false; - $(this._element).trigger(slidEvent); - } + this._isSliding = false; + $(this._element).trigger(slidEvent); + } - if (isCycling) { - this.cycle(); - } + if (isCycling) { + this.cycle(); } + }; - // static + // static - }], [{ - key: '_jQueryInterface', - value: function _jQueryInterface(config) { - return this.each(function () { - var data = $(this).data(DATA_KEY); - var _config = $.extend({}, Default, $(this).data()); + Carousel._jQueryInterface = function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = $.extend({}, Default, $(this).data()); - if (typeof config === 'object') { - $.extend(_config, config); - } + if ((typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object') { + $.extend(_config, config); + } - var action = typeof config === 'string' ? config : _config.slide; + var action = typeof config === 'string' ? config : _config.slide; - if (!data) { - data = new Carousel(this, _config); - $(this).data(DATA_KEY, data); - } + if (!data) { + data = new Carousel(this, _config); + $(this).data(DATA_KEY, data); + } - if (typeof config === 'number') { - data.to(config); - } else if (typeof action === 'string') { - if (data[action] === undefined) { - throw new Error('No method named "' + action + '"'); - } - data[action](); - } else if (_config.interval) { - data.pause(); - data.cycle(); + if (typeof config === 'number') { + data.to(config); + } else if (typeof action === 'string') { + if (data[action] === undefined) { + throw new Error('No method named "' + action + '"'); } - }); - } - }, { - key: '_dataApiClickHandler', - value: function _dataApiClickHandler(event) { - var selector = Util.getSelectorFromElement(this); - - if (!selector) { - return; + data[action](); + } else if (_config.interval) { + data.pause(); + data.cycle(); } + }); + }; - var target = $(selector)[0]; + Carousel._dataApiClickHandler = function _dataApiClickHandler(event) { + var selector = Util.getSelectorFromElement(this); - if (!target || !$(target).hasClass(ClassName.CAROUSEL)) { - return; - } + if (!selector) { + return; + } - var config = $.extend({}, $(target).data(), $(this).data()); - var slideIndex = this.getAttribute('data-slide-to'); + var target = $(selector)[0]; - if (slideIndex) { - config.interval = false; - } + if (!target || !$(target).hasClass(ClassName.CAROUSEL)) { + return; + } - Carousel._jQueryInterface.call($(target), config); + var config = $.extend({}, $(target).data(), $(this).data()); + var slideIndex = this.getAttribute('data-slide-to'); - if (slideIndex) { - $(target).data(DATA_KEY).to(slideIndex); - } + if (slideIndex) { + config.interval = false; + } - event.preventDefault(); + Carousel._jQueryInterface.call($(target), config); + + if (slideIndex) { + $(target).data(DATA_KEY).to(slideIndex); } - }, { + + event.preventDefault(); + }; + + _createClass(Carousel, null, [{ key: 'VERSION', get: function get() { return VERSION; diff --cc js/dist/carousel.js.map index 22a68233f3,40df56900b..0f7ef3ad3d --- a/js/dist/carousel.js.map +++ b/js/dist/carousel.js.map @@@ -1,1 -1,1 +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","PREVIOUS","Event","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","LOAD_DATA_API","CLICK_DATA_API","ClassName","CAROUSEL","ACTIVE","RIGHT","LEFT","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","preventDefault","which","makeArray","parent","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","directionalClassname","slideEvent","trigger","_setActiveIndicatorElement","removeClass","nextIndicator","children","addClass","nextElement","isCycling","Boolean","directionalClassName","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.5): 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.5'\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 PREVIOUS : 'prev'\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 : 'right',\n LEFT : 'left',\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 : '.next, .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.PREVIOUS)\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.PREVIOUS\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 event.preventDefault()\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\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.PREVIOUS\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.PREVIOUS ? -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, directionalClassname) {\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: directionalClassname\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 const directionalClassName = direction === Direction.NEXT ?\n ClassName.LEFT :\n ClassName.RIGHT\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, directionalClassName)\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: directionalClassName\n })\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.SLIDE)) {\n\n $(nextElement).addClass(direction)\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)\n .removeClass(direction)\n\n $(nextElement).addClass(ClassName.ACTIVE)\n\n $(activeElement)\n .removeClass(ClassName.ACTIVE)\n .removeClass(direction)\n .removeClass(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"]} -{"version":3,"sources":["../src/carousel.js"],"names":[],"mappings":"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","file":"carousel.js","sourcesContent":["import Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.4): 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.4'\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 PREVIOUS : 'prev'\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 : 'right',\n LEFT : 'left',\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 : '.next, .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.PREVIOUS)\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 $.proxy(document.visibilityState ? this.nextWhenVisible : this.next, this), this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n\n let 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 let direction = index > activeIndex ?\n Direction.NEXT :\n Direction.PREVIOUS\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, $.proxy(this._keydown, this))\n }\n\n if (this._config.pause === 'hover' &&\n !('ontouchstart' in document.documentElement)) {\n $(this._element)\n .on(Event.MOUSEENTER, $.proxy(this.pause, this))\n .on(Event.MOUSELEAVE, $.proxy(this.cycle, this))\n }\n }\n\n _keydown(event) {\n event.preventDefault()\n\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\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 let isNextDirection = direction === Direction.NEXT\n let isPrevDirection = direction === Direction.PREVIOUS\n let activeIndex = this._getItemIndex(activeElement)\n let lastItemIndex = (this._items.length - 1)\n let isGoingToWrap = (isPrevDirection && activeIndex === 0) ||\n (isNextDirection && activeIndex === lastItemIndex)\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n let delta = direction === Direction.PREVIOUS ? -1 : 1\n let 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, directionalClassname) {\n let slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: directionalClassname\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 let 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 let activeElement = $(this._element).find(Selector.ACTIVE_ITEM)[0]\n let nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n\n let isCycling = Boolean(this._interval)\n\n let directionalClassName = direction === Direction.NEXT ?\n ClassName.LEFT :\n ClassName.RIGHT\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n let slideEvent = this._triggerSlideEvent(nextElement, directionalClassName)\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 let slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: directionalClassName\n })\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.SLIDE)) {\n\n $(nextElement).addClass(direction)\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)\n .removeClass(direction)\n\n $(nextElement).addClass(ClassName.ACTIVE)\n\n $(activeElement)\n .removeClass(ClassName.ACTIVE)\n .removeClass(direction)\n .removeClass(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 let _config = $.extend({}, Default, $(this).data())\n\n if (typeof config === 'object') {\n $.extend(_config, config)\n }\n\n let 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 let selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n let target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n let config = $.extend({}, $(target).data(), $(this).data())\n let 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 let $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"]} ++{"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","PREVIOUS","Event","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","LOAD_DATA_API","CLICK_DATA_API","ClassName","CAROUSEL","ACTIVE","RIGHT","LEFT","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","preventDefault","which","makeArray","parent","indexOf","_getItemByDirection","activeElement","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","directionalClassname","slideEvent","trigger","_setActiveIndicatorElement","removeClass","nextIndicator","children","addClass","nextElement","isCycling","Boolean","directionalClassName","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.5): 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.5'\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 PREVIOUS : 'prev'\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 : 'right',\n LEFT : 'left',\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 : '.next, .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.PREVIOUS)\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.PREVIOUS\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 event.preventDefault()\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\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.PREVIOUS\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.PREVIOUS ? -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, directionalClassname) {\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: directionalClassname\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 const directionalClassName = direction === Direction.NEXT ?\n ClassName.LEFT :\n ClassName.RIGHT\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, directionalClassName)\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: directionalClassName\n })\n\n if (Util.supportsTransitionEnd() &&\n $(this._element).hasClass(ClassName.SLIDE)) {\n\n $(nextElement).addClass(direction)\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} ${direction}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${direction} ${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"]} diff --cc js/dist/popover.js index 3b81cae0de,f9d60ca341..90e9095817 --- a/js/dist/popover.js +++ b/js/dist/popover.js @@@ -75,66 -76,79 +75,66 @@@ var Popover = function ($) function Popover() { _classCallCheck(this, Popover); - _get(Object.getPrototypeOf(Popover.prototype), 'constructor', this).apply(this, arguments); + return _possibleConstructorReturn(this, _Tooltip.apply(this, arguments)); } - /** - * ------------------------------------------------------------------------ - * jQuery - * ------------------------------------------------------------------------ - */ + // overrides - _createClass(Popover, [{ - key: 'isWithContent', + Popover.prototype.isWithContent = function isWithContent() { + return this.getTitle() || this._getContent(); + }; - // overrides + Popover.prototype.getTipElement = function getTipElement() { + return this.tip = this.tip || $(this.config.template)[0]; + }; - value: function isWithContent() { - return this.getTitle() || this._getContent(); - } - }, { - key: 'getTipElement', - value: function getTipElement() { - return this.tip = this.tip || $(this.config.template)[0]; - } - }, { - key: 'setContent', - value: function setContent() { - var $tip = $(this.getTipElement()); + Popover.prototype.setContent = function setContent() { + var $tip = $(this.getTipElement()); - // we use append for html objects to maintain js events - this.setElementContent($tip.find(Selector.TITLE), this.getTitle()); - this.setElementContent($tip.find(Selector.CONTENT), this._getContent()); + // we use append for html objects to maintain js events + this.setElementContent($tip.find(Selector.TITLE), this.getTitle()); + this.setElementContent($tip.find(Selector.CONTENT), this._getContent()); - $tip.removeClass(ClassName.FADE).removeClass(ClassName.ACTIVE); - $tip.removeClass(ClassName.FADE).removeClass(ClassName.IN); ++ $tip.removeClass(ClassName.FADE + ' ' + ClassName.ACTIVE); - this.cleanupTether(); - } + this.cleanupTether(); + }; - // private + // private - }, { - key: '_getContent', - value: function _getContent() { - return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content); - } + Popover.prototype._getContent = function _getContent() { + return this.element.getAttribute('data-content') || (typeof this.config.content === 'function' ? this.config.content.call(this.element) : this.config.content); + }; - // static + // static - }], [{ - key: '_jQueryInterface', - value: function _jQueryInterface(config) { - return this.each(function () { - var data = $(this).data(DATA_KEY); - var _config = typeof config === 'object' ? config : null; + Popover._jQueryInterface = function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' ? config : null; - if (!data && /destroy|hide/.test(config)) { - return; - } + if (!data && /destroy|hide/.test(config)) { + return; + } - if (!data) { - data = new Popover(this, _config); - $(this).data(DATA_KEY, data); - } + if (!data) { + data = new Popover(this, _config); + $(this).data(DATA_KEY, data); + } - if (typeof config === 'string') { - if (data[config] === undefined) { - throw new Error('No method named "' + config + '"'); - } - data[config](); + if (typeof config === 'string') { + if (data[config] === undefined) { + throw new Error('No method named "' + config + '"'); } - }); - } - }, { + data[config](); + } + }); + }; + + _createClass(Popover, null, [{ key: 'VERSION', + // getters get: function get() { diff --cc js/dist/popover.js.map index e157059d94,e5839422b5..124cfec229 --- a/js/dist/popover.js.map +++ b/js/dist/popover.js.map @@@ -1,1 -1,1 +1,1 @@@ - {"version":3,"sources":["../src/popover.js"],"names":["Popover","$","NAME","VERSION","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","fn","Default","extend","Tooltip","placement","trigger","content","template","DefaultType","ClassName","FADE","ACTIVE","Selector","TITLE","CONTENT","Event","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","isWithContent","getTitle","_getContent","getTipElement","tip","config","setContent","$tip","setElementContent","find","removeClass","cleanupTether","element","getAttribute","call","_jQueryInterface","each","data","_config","test","undefined","Error","Constructor","noConflict","jQuery"],"mappings":"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","file":"popover.js","sourcesContent":["import Tooltip from './tooltip'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.5): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.0.0-alpha.5'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = $.extend({}, Tooltip.Default, {\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '
'\n + '

'\n + '
'\n })\n\n const DefaultType = $.extend({}, Tooltip.DefaultType, {\n content : '(string|element|function)'\n })\n\n const ClassName = {\n FADE : 'fade',\n ACTIVE : 'active'\n }\n\n const Selector = {\n TITLE : '.popover-title',\n CONTENT : '.popover-content'\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\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\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 // overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\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 // we use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n this.setElementContent($tip.find(Selector.CONTENT), this._getContent())\n\n $tip\n .removeClass(ClassName.FADE)\n .removeClass(ClassName.ACTIVE)\n\n this.cleanupTether()\n }\n\n // private\n\n _getContent() {\n return this.element.getAttribute('data-content')\n || (typeof this.config.content === 'function' ?\n this.config.content.call(this.element) :\n this.config.content)\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 : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(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 * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n\n})(jQuery)\n\nexport default Popover\n"]} -{"version":3,"sources":["../src/popover.js"],"names":[],"mappings":"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","file":"popover.js","sourcesContent":["import Tooltip from './tooltip'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.4): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.0.0-alpha.4'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = $.extend({}, Tooltip.Default, {\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '
'\n + '
'\n + '

'\n + '
'\n })\n\n const DefaultType = $.extend({}, Tooltip.DefaultType, {\n content : '(string|element|function)'\n })\n\n const ClassName = {\n FADE : 'fade',\n IN : 'in'\n }\n\n const Selector = {\n TITLE : '.popover-title',\n CONTENT : '.popover-content',\n ARROW : '.popover-arrow'\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\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\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 // overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n getTipElement() {\n return (this.tip = this.tip || $(this.config.template)[0])\n }\n\n setContent() {\n let $tip = $(this.getTipElement())\n\n // we use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n this.setElementContent($tip.find(Selector.CONTENT), this._getContent())\n\n $tip\n .removeClass(ClassName.FADE)\n .removeClass(ClassName.IN)\n\n this.cleanupTether()\n }\n\n // private\n\n _getContent() {\n return this.element.getAttribute('data-content')\n || (typeof this.config.content === 'function' ?\n this.config.content.call(this.element) :\n this.config.content)\n }\n\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = typeof config === 'object' ? config : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(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 * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n\n})(jQuery)\n\nexport default Popover\n"]} ++{"version":3,"sources":["../src/popover.js"],"names":["Popover","$","NAME","VERSION","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","fn","Default","extend","Tooltip","placement","trigger","content","template","DefaultType","ClassName","FADE","ACTIVE","Selector","TITLE","CONTENT","Event","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","isWithContent","getTitle","_getContent","getTipElement","tip","config","setContent","$tip","setElementContent","find","removeClass","cleanupTether","element","getAttribute","call","_jQueryInterface","each","data","_config","test","undefined","Error","Constructor","noConflict","jQuery"],"mappings":"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","file":"popover.js","sourcesContent":["import Tooltip from './tooltip'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.5): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Popover = (($) => {\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'popover'\n const VERSION = '4.0.0-alpha.5'\n const DATA_KEY = 'bs.popover'\n const EVENT_KEY = `.${DATA_KEY}`\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n\n const Default = $.extend({}, Tooltip.Default, {\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '
'\n + '

'\n + '
'\n })\n\n const DefaultType = $.extend({}, Tooltip.DefaultType, {\n content : '(string|element|function)'\n })\n\n const ClassName = {\n FADE : 'fade',\n ACTIVE : 'active'\n }\n\n const Selector = {\n TITLE : '.popover-title',\n CONTENT : '.popover-content'\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\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n class Popover extends Tooltip {\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 // overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\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 // we use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n this.setElementContent($tip.find(Selector.CONTENT), this._getContent())\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.ACTIVE}`)\n\n this.cleanupTether()\n }\n\n // private\n\n _getContent() {\n return this.element.getAttribute('data-content')\n || (typeof this.config.content === 'function' ?\n this.config.content.call(this.element) :\n this.config.content)\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 : null\n\n if (!data && /destroy|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(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 * jQuery\n * ------------------------------------------------------------------------\n */\n\n $.fn[NAME] = Popover._jQueryInterface\n $.fn[NAME].Constructor = Popover\n $.fn[NAME].noConflict = function () {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n }\n\n return Popover\n\n})(jQuery)\n\nexport default Popover\n"]} diff --cc js/dist/tooltip.js index 4184561208,9dfd3cd108..1de06f4459 --- a/js/dist/tooltip.js +++ b/js/dist/tooltip.js @@@ -274,279 -313,261 +274,279 @@@ var Tooltip = function ($) return; } - $(tip).removeClass(ClassName.IN); + complete(); + } + }; - if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) { + Tooltip.prototype.hide = function hide(callback) { + var _this2 = this; - $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); - } else { - complete(); + var tip = this.getTipElement(); + var hideEvent = $.Event(this.constructor.Event.HIDE); + var complete = function complete() { + if (_this2._hoverState !== HoverState.ACTIVE && tip.parentNode) { + tip.parentNode.removeChild(tip); } - this._hoverState = ''; - } + _this2.element.removeAttribute('aria-describedby'); + $(_this2.element).trigger(_this2.constructor.Event.HIDDEN); + _this2.cleanupTether(); - // protected + if (callback) { + callback(); + } + }; - }, { - key: 'isWithContent', - value: function isWithContent() { - return Boolean(this.getTitle()); - } - }, { - key: 'getTipElement', - value: function getTipElement() { - return this.tip = this.tip || $(this.config.template)[0]; + $(this.element).trigger(hideEvent); + + if (hideEvent.isDefaultPrevented()) { + return; } - }, { - key: 'setContent', - value: function setContent() { - var $tip = $(this.getTipElement()); - this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle()); + $(tip).removeClass(ClassName.ACTIVE); - $tip.removeClass(ClassName.FADE).removeClass(ClassName.IN); + if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) { - this.cleanupTether(); + $(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION); + } else { + complete(); } - }, { - key: 'setElementContent', - value: function setElementContent($element, content) { - var html = this.config.html; - if (typeof content === 'object' && (content.nodeType || content.jquery)) { - // content is a DOM node or a jQuery - if (html) { - if (!$(content).parent().is($element)) { - $element.empty().append(content); - } - } else { - $element.text($(content).text()); + + this._hoverState = ''; + }; + + // protected + + Tooltip.prototype.isWithContent = function isWithContent() { + return Boolean(this.getTitle()); + }; + + Tooltip.prototype.getTipElement = function getTipElement() { + return this.tip = this.tip || $(this.config.template)[0]; + }; + + Tooltip.prototype.setContent = function setContent() { + var $tip = $(this.getTipElement()); + + this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle()); + - $tip.removeClass(ClassName.FADE).removeClass(ClassName.ACTIVE); ++ $tip.removeClass(ClassName.FADE + ' ' + ClassName.ACTIVE); + + this.cleanupTether(); + }; + + Tooltip.prototype.setElementContent = function setElementContent($element, content) { + var html = this.config.html; + if ((typeof content === 'undefined' ? 'undefined' : _typeof(content)) === 'object' && (content.nodeType || content.jquery)) { + // content is a DOM node or a jQuery + if (html) { + if (!$(content).parent().is($element)) { + $element.empty().append(content); } } else { - $element[html ? 'html' : 'text'](content); + $element.text($(content).text()); } + } else { + $element[html ? 'html' : 'text'](content); } - }, { - key: 'getTitle', - value: function getTitle() { - var title = this.element.getAttribute('data-original-title'); + }; - if (!title) { - title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title; - } + Tooltip.prototype.getTitle = function getTitle() { + var title = this.element.getAttribute('data-original-title'); - return title; - } - }, { - key: 'cleanupTether', - value: function cleanupTether() { - if (this._tether) { - this._tether.destroy(); - } + if (!title) { + title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title; } - // private + return title; + }; - }, { - key: '_getAttachment', - value: function _getAttachment(placement) { - return AttachmentMap[placement.toUpperCase()]; + Tooltip.prototype.cleanupTether = function cleanupTether() { + if (this._tether) { + this._tether.destroy(); } - }, { - key: '_setListeners', - value: function _setListeners() { - var _this3 = this; + }; - var triggers = this.config.trigger.split(' '); + // private - triggers.forEach(function (trigger) { - if (trigger === 'click') { - $(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, $.proxy(_this3.toggle, _this3)); - } else if (trigger !== Trigger.MANUAL) { - var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN; - var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT; + Tooltip.prototype._getAttachment = function _getAttachment(placement) { + return AttachmentMap[placement.toUpperCase()]; + }; - $(_this3.element).on(eventIn, _this3.config.selector, $.proxy(_this3._enter, _this3)).on(eventOut, _this3.config.selector, $.proxy(_this3._leave, _this3)); - } - }); + Tooltip.prototype._setListeners = function _setListeners() { + var _this3 = this; + + var triggers = this.config.trigger.split(' '); - if (this.config.selector) { - this.config = $.extend({}, this.config, { - trigger: 'manual', - selector: '' + triggers.forEach(function (trigger) { + if (trigger === 'click') { + $(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function (event) { + return _this3.toggle(event); + }); + } else if (trigger !== Trigger.MANUAL) { + var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN; + var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT; + + $(_this3.element).on(eventIn, _this3.config.selector, function (event) { + return _this3._enter(event); + }).on(eventOut, _this3.config.selector, function (event) { + return _this3._leave(event); }); - } else { - this._fixTitle(); } + }); + + if (this.config.selector) { + this.config = $.extend({}, this.config, { + trigger: 'manual', + selector: '' + }); + } else { + this._fixTitle(); } - }, { - key: '_fixTitle', - value: function _fixTitle() { - var titleType = typeof this.element.getAttribute('data-original-title'); - if (this.element.getAttribute('title') || titleType !== 'string') { - this.element.setAttribute('data-original-title', this.element.getAttribute('title') || ''); - this.element.setAttribute('title', ''); - } + }; + + Tooltip.prototype._fixTitle = function _fixTitle() { + var titleType = _typeof(this.element.getAttribute('data-original-title')); + if (this.element.getAttribute('title') || titleType !== 'string') { + this.element.setAttribute('data-original-title', this.element.getAttribute('title') || ''); + this.element.setAttribute('title', ''); } - }, { - key: '_enter', - value: function _enter(event, context) { - var dataKey = this.constructor.DATA_KEY; + }; - context = context || $(event.currentTarget).data(dataKey); + Tooltip.prototype._enter = function _enter(event, context) { + var dataKey = this.constructor.DATA_KEY; - if (!context) { - context = new this.constructor(event.currentTarget, this._getDelegateConfig()); - $(event.currentTarget).data(dataKey, context); - } + context = context || $(event.currentTarget).data(dataKey); - if (event) { - context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true; - } + if (!context) { + context = new this.constructor(event.currentTarget, this._getDelegateConfig()); + $(event.currentTarget).data(dataKey, context); + } - if ($(context.getTipElement()).hasClass(ClassName.IN) || context._hoverState === HoverState.IN) { - context._hoverState = HoverState.IN; - return; - } + if (event) { + context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = true; + } + + if ($(context.getTipElement()).hasClass(ClassName.ACTIVE) || context._hoverState === HoverState.ACTIVE) { + context._hoverState = HoverState.ACTIVE; + return; + } - clearTimeout(context._timeout); + clearTimeout(context._timeout); - context._hoverState = HoverState.IN; + context._hoverState = HoverState.ACTIVE; - if (!context.config.delay || !context.config.delay.show) { + if (!context.config.delay || !context.config.delay.show) { + context.show(); + return; + } + + context._timeout = setTimeout(function () { + if (context._hoverState === HoverState.ACTIVE) { context.show(); - return; } + }, context.config.delay.show); + }; - context._timeout = setTimeout(function () { - if (context._hoverState === HoverState.IN) { - context.show(); - } - }, context.config.delay.show); - } - }, { - key: '_leave', - value: function _leave(event, context) { - var dataKey = this.constructor.DATA_KEY; + Tooltip.prototype._leave = function _leave(event, context) { + var dataKey = this.constructor.DATA_KEY; - context = context || $(event.currentTarget).data(dataKey); + context = context || $(event.currentTarget).data(dataKey); - if (!context) { - context = new this.constructor(event.currentTarget, this._getDelegateConfig()); - $(event.currentTarget).data(dataKey, context); - } + if (!context) { + context = new this.constructor(event.currentTarget, this._getDelegateConfig()); + $(event.currentTarget).data(dataKey, context); + } - if (event) { - context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false; - } + if (event) { + context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = false; + } - if (context._isWithActiveTrigger()) { - return; - } + if (context._isWithActiveTrigger()) { + return; + } + + clearTimeout(context._timeout); - clearTimeout(context._timeout); + context._hoverState = HoverState.OUT; - context._hoverState = HoverState.OUT; + if (!context.config.delay || !context.config.delay.hide) { + context.hide(); + return; + } - if (!context.config.delay || !context.config.delay.hide) { + context._timeout = setTimeout(function () { + if (context._hoverState === HoverState.OUT) { context.hide(); - return; } + }, context.config.delay.hide); + }; - context._timeout = setTimeout(function () { - if (context._hoverState === HoverState.OUT) { - context.hide(); - } - }, context.config.delay.hide); - } - }, { - key: '_isWithActiveTrigger', - value: function _isWithActiveTrigger() { - for (var trigger in this._activeTrigger) { - if (this._activeTrigger[trigger]) { - return true; - } + Tooltip.prototype._isWithActiveTrigger = function _isWithActiveTrigger() { + for (var trigger in this._activeTrigger) { + if (this._activeTrigger[trigger]) { + return true; } - - return false; } - }, { - key: '_getConfig', - value: function _getConfig(config) { - config = $.extend({}, this.constructor.Default, $(this.element).data(), config); - - if (config.delay && typeof config.delay === 'number') { - config.delay = { - show: config.delay, - hide: config.delay - }; - } - Util.typeCheckConfig(NAME, config, this.constructor.DefaultType); + return false; + }; + + Tooltip.prototype._getConfig = function _getConfig(config) { + config = $.extend({}, this.constructor.Default, $(this.element).data(), config); - return config; + if (config.delay && typeof config.delay === 'number') { + config.delay = { + show: config.delay, + hide: config.delay + }; } - }, { - key: '_getDelegateConfig', - value: function _getDelegateConfig() { - var config = {}; - - if (this.config) { - for (var key in this.config) { - if (this.constructor.Default[key] !== this.config[key]) { - config[key] = this.config[key]; - } + + Util.typeCheckConfig(NAME, config, this.constructor.DefaultType); + + return config; + }; + + Tooltip.prototype._getDelegateConfig = function _getDelegateConfig() { + var config = {}; + + if (this.config) { + for (var key in this.config) { + if (this.constructor.Default[key] !== this.config[key]) { + config[key] = this.config[key]; } } - - return config; } - // static + return config; + }; - }], [{ - key: '_jQueryInterface', - value: function _jQueryInterface(config) { - return this.each(function () { - var data = $(this).data(DATA_KEY); - var _config = typeof config === 'object' ? config : null; + // static - if (!data && /destroy|hide/.test(config)) { - return; - } + Tooltip._jQueryInterface = function _jQueryInterface(config) { + return this.each(function () { + var data = $(this).data(DATA_KEY); + var _config = (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object' && config; - if (!data) { - data = new Tooltip(this, _config); - $(this).data(DATA_KEY, data); - } + if (!data && /dispose|hide/.test(config)) { + return; + } - if (typeof config === 'string') { - if (data[config] === undefined) { - throw new Error('No method named "' + config + '"'); - } - data[config](); + if (!data) { + data = new Tooltip(this, _config); + $(this).data(DATA_KEY, data); + } + + if (typeof config === 'string') { + if (data[config] === undefined) { + throw new Error('No method named "' + config + '"'); } - }); - } - }, { + data[config](); + } + }); + }; + + _createClass(Tooltip, null, [{ key: 'VERSION', get: function get() { return VERSION; diff --cc js/dist/tooltip.js.map index f1f64b87d0,3146709444..f2c815aed0 --- a/js/dist/tooltip.js.map +++ b/js/dist/tooltip.js.map @@@ -1,1 -1,1 +1,1 @@@ - {"version":3,"sources":["../src/tooltip.js"],"names":["Tooltip","$","window","Tether","undefined","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","ACTIVE","OUT","Event","HIDE","HIDDEN","SHOW","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","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","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.5): 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 (window.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.5'\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 : '
'\n + '
',\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 ACTIVE : 'active',\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 ACTIVE : 'active'\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.ACTIVE)) {\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\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 const showEvent = $.Event(this.constructor.Event.SHOW)\n\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)\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.ACTIVE)\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.ACTIVE && 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.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.ACTIVE)\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\n .removeClass(ClassName.FADE)\n .removeClass(ClassName.ACTIVE)\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\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.ACTIVE) ||\n context._hoverState === HoverState.ACTIVE) {\n context._hoverState = HoverState.ACTIVE\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.ACTIVE\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.ACTIVE) {\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"]} -{"version":3,"sources":["../src/tooltip.js"],"names":[],"mappings":";;;;;;;;;;;;;;;AAYA,IAAM,OAAO,GAAG,CAAC,UAAC,CAAC,EAAK;;;;;;AAMtB,MAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;AAC/B,UAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAA;GACzF;;;;;;;;AASD,MAAM,IAAI,GAAkB,SAAS,CAAA;AACrC,MAAM,OAAO,GAAe,eAAe,CAAA;AAC3C,MAAM,QAAQ,GAAc,YAAY,CAAA;AACxC,MAAM,SAAS,SAAiB,QAAQ,AAAE,CAAA;AAC1C,MAAM,kBAAkB,GAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;AACtC,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAC/B,MAAM,YAAY,GAAU,WAAW,CAAA;;AAEvC,MAAM,OAAO,GAAG;AACd,aAAS,EAAK,IAAI;AAClB,YAAQ,EAAM,sCAAsC,GACtC,mCAAmC,GACnC,yCAAyC;AACvD,WAAO,EAAO,aAAa;AAC3B,SAAK,EAAS,EAAE;AAChB,SAAK,EAAS,CAAC;AACf,QAAI,EAAU,KAAK;AACnB,YAAQ,EAAM,KAAK;AACnB,aAAS,EAAK,KAAK;AACnB,UAAM,EAAQ,KAAK;AACnB,eAAW,EAAG,EAAE;GACjB,CAAA;;AAED,MAAM,WAAW,GAAG;AAClB,aAAS,EAAK,SAAS;AACvB,YAAQ,EAAM,QAAQ;AACtB,SAAK,EAAS,2BAA2B;AACzC,WAAO,EAAO,QAAQ;AACtB,SAAK,EAAS,iBAAiB;AAC/B,QAAI,EAAU,SAAS;AACvB,YAAQ,EAAM,kBAAkB;AAChC,aAAS,EAAK,mBAAmB;AACjC,UAAM,EAAQ,QAAQ;AACtB,eAAW,EAAG,OAAO;GACtB,CAAA;;AAED,MAAM,aAAa,GAAG;AACpB,OAAG,EAAM,eAAe;AACxB,SAAK,EAAI,aAAa;AACtB,UAAM,EAAG,YAAY;AACrB,QAAI,EAAK,cAAc;GACxB,CAAA;;AAED,MAAM,UAAU,GAAG;AACjB,MAAE,EAAI,IAAI;AACV,OAAG,EAAG,KAAK;GACZ,CAAA;;AAED,MAAM,KAAK,GAAG;AACZ,QAAI,WAAgB,SAAS,AAAE;AAC/B,UAAM,aAAgB,SAAS,AAAE;AACjC,QAAI,WAAgB,SAAS,AAAE;AAC/B,SAAK,YAAgB,SAAS,AAAE;AAChC,YAAQ,eAAgB,SAAS,AAAE;AACnC,SAAK,YAAgB,SAAS,AAAE;AAChC,WAAO,cAAgB,SAAS,AAAE;AAClC,YAAQ,eAAgB,SAAS,AAAE;AACnC,cAAU,iBAAgB,SAAS,AAAE;AACrC,cAAU,iBAAgB,SAAS,AAAE;GACtC,CAAA;;AAED,MAAM,SAAS,GAAG;AAChB,QAAI,EAAG,MAAM;AACb,MAAE,EAAK,IAAI;GACZ,CAAA;;AAED,MAAM,QAAQ,GAAG;AACf,WAAO,EAAS,UAAU;AAC1B,iBAAa,EAAG,gBAAgB;GACjC,CAAA;;AAED,MAAM,WAAW,GAAG;AAClB,WAAO,EAAG,KAAK;AACf,WAAO,EAAG,KAAK;GAChB,CAAA;;AAED,MAAM,OAAO,GAAG;AACd,SAAK,EAAI,OAAO;AAChB,SAAK,EAAI,OAAO;AAChB,SAAK,EAAI,OAAO;AAChB,UAAM,EAAG,QAAQ;GAClB,CAAA;;;;;;;;MASK,OAAO;AAEA,aAFP,OAAO,CAEC,OAAO,EAAE,MAAM,EAAE;4BAFzB,OAAO;;;AAKT,UAAI,CAAC,UAAU,GAAQ,IAAI,CAAA;AAC3B,UAAI,CAAC,QAAQ,GAAU,CAAC,CAAA;AACxB,UAAI,CAAC,WAAW,GAAO,EAAE,CAAA;AACzB,UAAI,CAAC,cAAc,GAAI,EAAE,CAAA;AACzB,UAAI,CAAC,OAAO,GAAW,IAAI,CAAA;;;AAG3B,UAAI,CAAC,OAAO,GAAG,OAAO,CAAA;AACtB,UAAI,CAAC,MAAM,GAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;AACtC,UAAI,CAAC,GAAG,GAAO,IAAI,CAAA;;AAEnB,UAAI,CAAC,aAAa,EAAE,CAAA;KAErB;;;;;;;;;;iBAlBG,OAAO;;;;;aAsDL,kBAAG;AACP,YAAI,CAAC,UAAU,GAAG,IAAI,CAAA;OACvB;;;aAEM,mBAAG;AACR,YAAI,CAAC,UAAU,GAAG,KAAK,CAAA;OACxB;;;aAEY,yBAAG;AACd,YAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAA;OACnC;;;aAEK,gBAAC,KAAK,EAAE;AACZ,YAAI,KAAK,EAAE;AACT,cAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAA;AACvC,cAAI,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;;AAElD,cAAI,CAAC,OAAO,EAAE;AACZ,mBAAO,GAAG,IAAI,IAAI,CAAC,WAAW,CAC5B,KAAK,CAAC,aAAa,EACnB,IAAI,CAAC,kBAAkB,EAAE,CAC1B,CAAA;AACD,aAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;WAC9C;;AAED,iBAAO,CAAC,cAAc,CAAC,KAAK,GAAG,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAA;;AAE5D,cAAI,OAAO,CAAC,oBAAoB,EAAE,EAAE;AAClC,mBAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;WAC9B,MAAM;AACL,mBAAO,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;WAC9B;SAEF,MAAM;;AAEL,cAAI,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;AAClD,gBAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AACvB,mBAAM;WACP;;AAED,cAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;SACxB;OACF;;;aAEM,mBAAG;AACR,oBAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;;AAE3B,YAAI,CAAC,aAAa,EAAE,CAAA;;AAEpB,SAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;;AAErD,SAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;;AAE/C,YAAI,IAAI,CAAC,GAAG,EAAE;AACZ,WAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAA;SACrB;;AAED,YAAI,CAAC,UAAU,GAAQ,IAAI,CAAA;AAC3B,YAAI,CAAC,QAAQ,GAAU,IAAI,CAAA;AAC3B,YAAI,CAAC,WAAW,GAAO,IAAI,CAAA;AAC3B,YAAI,CAAC,cAAc,GAAI,IAAI,CAAA;AAC3B,YAAI,CAAC,OAAO,GAAW,IAAI,CAAA;;AAE3B,YAAI,CAAC,OAAO,GAAG,IAAI,CAAA;AACnB,YAAI,CAAC,MAAM,GAAI,IAAI,CAAA;AACnB,YAAI,CAAC,GAAG,GAAO,IAAI,CAAA;OACpB;;;aAEG,gBAAG;;;AACL,YAAI,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;;AAEpD,YAAI,IAAI,CAAC,aAAa,EAAE,IAAI,IAAI,CAAC,UAAU,EAAE;AAC3C,WAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;;AAElC,cAAI,UAAU,GAAG,CAAC,CAAC,QAAQ,CACzB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,eAAe,EAC1C,IAAI,CAAC,OAAO,CACb,CAAA;;AAED,cAAI,SAAS,CAAC,kBAAkB,EAAE,IAAI,CAAC,UAAU,EAAE;AACjD,mBAAM;WACP;;AAED,cAAI,GAAG,GAAK,IAAI,CAAC,aAAa,EAAE,CAAA;AAChC,cAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;;AAE9C,aAAG,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAC7B,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAA;;AAEpD,cAAI,CAAC,UAAU,EAAE,CAAA;;AAEjB,cAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AACzB,aAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;WAChC;;AAED,cAAI,SAAS,GAAI,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,UAAU,GAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,GACnD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAA;;AAEvB,cAAI,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAA;;AAE/C,WAAC,CAAC,GAAG,CAAC,CACH,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CACrC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;;AAE1B,WAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;;AAExD,cAAI,CAAC,OAAO,GAAG,IAAI,MAAM,CAAC;AACxB,sBAAU,EAAV,UAAU;AACV,mBAAO,EAAW,GAAG;AACrB,kBAAM,EAAY,IAAI,CAAC,OAAO;AAC9B,mBAAO,EAAW,WAAW;AAC7B,uBAAW,EAAO,YAAY;AAC9B,kBAAM,EAAY,IAAI,CAAC,MAAM,CAAC,MAAM;AACpC,uBAAW,EAAO,IAAI,CAAC,MAAM,CAAC,WAAW;AACzC,4BAAgB,EAAE,KAAK;WACxB,CAAC,CAAA;;AAEF,cAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAChB,cAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAA;;AAEvB,WAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;;AAE7B,cAAI,QAAQ,GAAG,SAAX,QAAQ,GAAS;AACnB,gBAAI,cAAc,GAAG,MAAK,WAAW,CAAA;AACrC,kBAAK,WAAW,GAAK,IAAI,CAAA;;AAEzB,aAAC,CAAC,MAAK,OAAO,CAAC,CAAC,OAAO,CAAC,MAAK,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;;AAErD,gBAAI,cAAc,KAAK,UAAU,CAAC,GAAG,EAAE;AACrC,oBAAK,MAAM,CAAC,IAAI,QAAO,CAAA;aACxB;WACF,CAAA;;AAED,cAAI,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;AACxE,aAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CACR,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAClC,oBAAoB,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAA;AACrD,mBAAM;WACP;;AAED,kBAAQ,EAAE,CAAA;SACX;OACF;;;aAEG,cAAC,QAAQ,EAAE;;;AACb,YAAI,GAAG,GAAS,IAAI,CAAC,aAAa,EAAE,CAAA;AACpC,YAAI,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;AACpD,YAAI,QAAQ,GAAI,SAAZ,QAAQ,GAAU;AACpB,cAAI,OAAK,WAAW,KAAK,UAAU,CAAC,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE;AACxD,eAAG,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;WAChC;;AAED,iBAAK,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAA;AAChD,WAAC,CAAC,OAAK,OAAO,CAAC,CAAC,OAAO,CAAC,OAAK,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;AACtD,iBAAK,aAAa,EAAE,CAAA;;AAEpB,cAAI,QAAQ,EAAE;AACZ,oBAAQ,EAAE,CAAA;WACX;SACF,CAAA;;AAED,SAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;;AAElC,YAAI,SAAS,CAAC,kBAAkB,EAAE,EAAE;AAClC,iBAAM;SACP;;AAED,SAAC,CAAC,GAAG,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;;AAEhC,YAAI,IAAI,CAAC,qBAAqB,EAAE,IAC5B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,AAAC,EAAE;;AAEzC,WAAC,CAAC,GAAG,CAAC,CACH,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAClC,oBAAoB,CAAC,mBAAmB,CAAC,CAAA;SAE7C,MAAM;AACL,kBAAQ,EAAE,CAAA;SACX;;AAED,YAAI,CAAC,WAAW,GAAG,EAAE,CAAA;OACtB;;;;;;aAKY,yBAAG;AACd,eAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;OAChC;;;aAEY,yBAAG;AACd,eAAQ,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;OAC3D;;;aAES,sBAAG;AACX,YAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;;AAElC,YAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;;AAE1E,YAAI,CACD,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAC3B,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;;AAE5B,YAAI,CAAC,aAAa,EAAE,CAAA;OACrB;;;aAEgB,2BAAC,QAAQ,EAAE,OAAO,EAAE;AACnC,YAAI,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;AAC3B,YAAI,OAAO,OAAO,KAAK,QAAQ,KAAK,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAA,AAAC,EAAE;;AAEvE,cAAI,IAAI,EAAE;AACR,gBAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE;AACrC,sBAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;aACjC;WACF,MAAM;AACL,oBAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;WACjC;SACF,MAAM;AACL,kBAAQ,CAAC,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,OAAO,CAAC,CAAA;SAC1C;OACF;;;aAEO,oBAAG;AACT,YAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAA;;AAE5D,YAAI,CAAC,KAAK,EAAE;AACV,eAAK,GAAG,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,UAAU,GAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAA;SACpB;;AAED,eAAO,KAAK,CAAA;OACb;;;aAEY,yBAAG;AACd,YAAI,IAAI,CAAC,OAAO,EAAE;AAChB,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAA;SACvB;OACF;;;;;;aAKa,wBAAC,SAAS,EAAE;AACxB,eAAO,aAAa,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAA;OAC9C;;;aAEY,yBAAG;;;AACd,YAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;;AAE7C,gBAAQ,CAAC,OAAO,CAAC,UAAC,OAAO,EAAK;AAC5B,cAAI,OAAO,KAAK,OAAO,EAAE;AACvB,aAAC,CAAC,OAAK,OAAO,CAAC,CAAC,EAAE,CAChB,OAAK,WAAW,CAAC,KAAK,CAAC,KAAK,EAC5B,OAAK,MAAM,CAAC,QAAQ,EACpB,CAAC,CAAC,KAAK,CAAC,OAAK,MAAM,SAAO,CAC3B,CAAA;WAEF,MAAM,IAAI,OAAO,KAAK,OAAO,CAAC,MAAM,EAAE;AACrC,gBAAI,OAAO,GAAI,OAAO,KAAK,OAAO,CAAC,KAAK,GACtC,OAAK,WAAW,CAAC,KAAK,CAAC,UAAU,GACjC,OAAK,WAAW,CAAC,KAAK,CAAC,OAAO,CAAA;AAChC,gBAAI,QAAQ,GAAG,OAAO,KAAK,OAAO,CAAC,KAAK,GACtC,OAAK,WAAW,CAAC,KAAK,CAAC,UAAU,GACjC,OAAK,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAA;;AAEjC,aAAC,CAAC,OAAK,OAAO,CAAC,CACZ,EAAE,CACD,OAAO,EACP,OAAK,MAAM,CAAC,QAAQ,EACpB,CAAC,CAAC,KAAK,CAAC,OAAK,MAAM,SAAO,CAC3B,CACA,EAAE,CACD,QAAQ,EACR,OAAK,MAAM,CAAC,QAAQ,EACpB,CAAC,CAAC,KAAK,CAAC,OAAK,MAAM,SAAO,CAC3B,CAAA;WACJ;SACF,CAAC,CAAA;;AAEF,YAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACxB,cAAI,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE;AACtC,mBAAO,EAAI,QAAQ;AACnB,oBAAQ,EAAG,EAAE;WACd,CAAC,CAAA;SACH,MAAM;AACL,cAAI,CAAC,SAAS,EAAE,CAAA;SACjB;OACF;;;aAEQ,qBAAG;AACV,YAAI,SAAS,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAA;AACvE,YAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAClC,SAAS,KAAK,QAAQ,AAAC,EAAE;AAC3B,cAAI,CAAC,OAAO,CAAC,YAAY,CACvB,qBAAqB,EACrB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CACzC,CAAA;AACD,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;SACvC;OACF;;;aAEK,gBAAC,KAAK,EAAE,OAAO,EAAE;AACrB,YAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAA;;AAEvC,eAAO,GAAG,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;;AAEzD,YAAI,CAAC,OAAO,EAAE;AACZ,iBAAO,GAAG,IAAI,IAAI,CAAC,WAAW,CAC5B,KAAK,CAAC,aAAa,EACnB,IAAI,CAAC,kBAAkB,EAAE,CAC1B,CAAA;AACD,WAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;SAC9C;;AAED,YAAI,KAAK,EAAE;AACT,iBAAO,CAAC,cAAc,CACpB,KAAK,CAAC,IAAI,KAAK,SAAS,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CACzD,GAAG,IAAI,CAAA;SACT;;AAED,YAAI,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,IACjD,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC,EAAE,AAAC,EAAE;AAC1C,iBAAO,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE,CAAA;AACnC,iBAAM;SACP;;AAED,oBAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;;AAE9B,eAAO,CAAC,WAAW,GAAG,UAAU,CAAC,EAAE,CAAA;;AAEnC,YAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;AACvD,iBAAO,CAAC,IAAI,EAAE,CAAA;AACd,iBAAM;SACP;;AAED,eAAO,CAAC,QAAQ,GAAG,UAAU,CAAC,YAAM;AAClC,cAAI,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC,EAAE,EAAE;AACzC,mBAAO,CAAC,IAAI,EAAE,CAAA;WACf;SACF,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;OAC9B;;;aAEK,gBAAC,KAAK,EAAE,OAAO,EAAE;AACrB,YAAI,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAA;;AAEvC,eAAO,GAAG,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;;AAEzD,YAAI,CAAC,OAAO,EAAE;AACZ,iBAAO,GAAG,IAAI,IAAI,CAAC,WAAW,CAC5B,KAAK,CAAC,aAAa,EACnB,IAAI,CAAC,kBAAkB,EAAE,CAC1B,CAAA;AACD,WAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;SAC9C;;AAED,YAAI,KAAK,EAAE;AACT,iBAAO,CAAC,cAAc,CACpB,KAAK,CAAC,IAAI,KAAK,UAAU,GAAG,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAC1D,GAAG,KAAK,CAAA;SACV;;AAED,YAAI,OAAO,CAAC,oBAAoB,EAAE,EAAE;AAClC,iBAAM;SACP;;AAED,oBAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;;AAE9B,eAAO,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,CAAA;;AAEpC,YAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;AACvD,iBAAO,CAAC,IAAI,EAAE,CAAA;AACd,iBAAM;SACP;;AAED,eAAO,CAAC,QAAQ,GAAG,UAAU,CAAC,YAAM;AAClC,cAAI,OAAO,CAAC,WAAW,KAAK,UAAU,CAAC,GAAG,EAAE;AAC1C,mBAAO,CAAC,IAAI,EAAE,CAAA;WACf;SACF,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;OAC9B;;;aAEmB,gCAAG;AACrB,aAAK,IAAI,OAAO,IAAI,IAAI,CAAC,cAAc,EAAE;AACvC,cAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;AAChC,mBAAO,IAAI,CAAA;WACZ;SACF;;AAED,eAAO,KAAK,CAAA;OACb;;;aAES,oBAAC,MAAM,EAAE;AACjB,cAAM,GAAG,CAAC,CAAC,MAAM,CACf,EAAE,EACF,IAAI,CAAC,WAAW,CAAC,OAAO,EACxB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EACtB,MAAM,CACP,CAAA;;AAED,YAAI,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;AACpD,gBAAM,CAAC,KAAK,GAAG;AACb,gBAAI,EAAG,MAAM,CAAC,KAAK;AACnB,gBAAI,EAAG,MAAM,CAAC,KAAK;WACpB,CAAA;SACF;;AAED,YAAI,CAAC,eAAe,CAClB,IAAI,EACJ,MAAM,EACN,IAAI,CAAC,WAAW,CAAC,WAAW,CAC7B,CAAA;;AAED,eAAO,MAAM,CAAA;OACd;;;aAEiB,8BAAG;AACnB,YAAI,MAAM,GAAG,EAAE,CAAA;;AAEf,YAAI,IAAI,CAAC,MAAM,EAAE;AACf,eAAK,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;AAC3B,gBAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AACtD,oBAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;aAC/B;WACF;SACF;;AAED,eAAO,MAAM,CAAA;OACd;;;;;;aAKsB,0BAAC,MAAM,EAAE;AAC9B,eAAO,IAAI,CAAC,IAAI,CAAC,YAAY;AAC3B,cAAI,IAAI,GAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACnC,cAAI,OAAO,GAAG,OAAO,MAAM,KAAK,QAAQ,GACtC,MAAM,GAAG,IAAI,CAAA;;AAEf,cAAI,CAAC,IAAI,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACxC,mBAAM;WACP;;AAED,cAAI,CAAC,IAAI,EAAE;AACT,gBAAI,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;AACjC,aAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;WAC7B;;AAED,cAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC9B,gBAAI,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;AAC9B,oBAAM,IAAI,KAAK,uBAAqB,MAAM,OAAI,CAAA;aAC/C;AACD,gBAAI,CAAC,MAAM,CAAC,EAAE,CAAA;WACf;SACF,CAAC,CAAA;OACH;;;WAveiB,eAAG;AACnB,eAAO,OAAO,CAAA;OACf;;;WAEiB,eAAG;AACnB,eAAO,OAAO,CAAA;OACf;;;WAEc,eAAG;AAChB,eAAO,IAAI,CAAA;OACZ;;;WAEkB,eAAG;AACpB,eAAO,QAAQ,CAAA;OAChB;;;WAEe,eAAG;AACjB,eAAO,KAAK,CAAA;OACb;;;WAEmB,eAAG;AACrB,eAAO,SAAS,CAAA;OACjB;;;WAEqB,eAAG;AACvB,eAAO,WAAW,CAAA;OACnB;;;WAjDG,OAAO;;;AAygBb,GAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAe,OAAO,CAAC,gBAAgB,CAAA;AACjD,GAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,GAAG,OAAO,CAAA;AAChC,GAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,UAAU,GAAI,YAAY;AACnC,KAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAA;AAC/B,WAAO,OAAO,CAAC,gBAAgB,CAAA;GAChC,CAAA;;AAED,SAAO,OAAO,CAAA;CAEf,CAAA,CAAE,MAAM,CAAC,CAAA","file":"tooltip.js","sourcesContent":["/* global Tether */\n\nimport Util from './util'\n\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0-alpha.4): 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://github.hubspot.com/tether/\n */\n if (window.Tether === undefined) {\n throw new Error('Bootstrap tooltips require Tether (http://github.hubspot.com/tether/)')\n }\n\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n const NAME = 'tooltip'\n const VERSION = '4.0.0-alpha.4'\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 : '
'\n + '
'\n + '
',\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 }\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 }\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 IN : 'in',\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 IN : 'in'\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 let 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.IN)) {\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\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 let showEvent = $.Event(this.constructor.Event.SHOW)\n\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n let isInTheDom = $.contains(\n this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n let tip = this.getTipElement()\n let 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 let placement = typeof this.config.placement === 'function' ?\n this.config.placement.call(this, tip, this.element) :\n this.config.placement\n\n let attachment = this._getAttachment(placement)\n\n $(tip)\n .data(this.constructor.DATA_KEY, this)\n .appendTo(document.body)\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.IN)\n\n let complete = () => {\n let 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 let tip = this.getTipElement()\n let hideEvent = $.Event(this.constructor.Event.HIDE)\n let complete = () => {\n if (this._hoverState !== HoverState.IN && 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.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.IN)\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 let $tip = $(this.getTipElement())\n\n this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle())\n\n $tip\n .removeClass(ClassName.FADE)\n .removeClass(ClassName.IN)\n\n this.cleanupTether()\n }\n\n setElementContent($element, content) {\n let 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 let 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 $.proxy(this.toggle, this)\n )\n\n } else if (trigger !== Trigger.MANUAL) {\n let eventIn = trigger === Trigger.HOVER ?\n this.constructor.Event.MOUSEENTER :\n this.constructor.Event.FOCUSIN\n let 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 $.proxy(this._enter, this)\n )\n .on(\n eventOut,\n this.config.selector,\n $.proxy(this._leave, this)\n )\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 let 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 let 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.IN) ||\n (context._hoverState === HoverState.IN)) {\n context._hoverState = HoverState.IN\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.IN\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.IN) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n let 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 (let 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 let config = {}\n\n if (this.config) {\n for (let 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 let _config = typeof config === 'object' ?\n config : null\n\n if (!data && /destroy|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"]} ++{"version":3,"sources":["../src/tooltip.js"],"names":["Tooltip","$","window","Tether","undefined","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","ACTIVE","OUT","Event","HIDE","HIDDEN","SHOW","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","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","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.5): 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 (window.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.5'\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 : '
'\n + '
',\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 ACTIVE : 'active',\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 ACTIVE : 'active'\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.ACTIVE)) {\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\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 const showEvent = $.Event(this.constructor.Event.SHOW)\n\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)\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.ACTIVE)\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.ACTIVE && 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.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.ACTIVE)\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.ACTIVE}`)\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\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.ACTIVE) ||\n context._hoverState === HoverState.ACTIVE) {\n context._hoverState = HoverState.ACTIVE\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.ACTIVE\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.ACTIVE) {\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"]} diff --cc js/src/popover.js index 01804eda6c,eae17f1d35..a08ed4de93 --- a/js/src/popover.js +++ b/js/src/popover.js @@@ -117,9 -119,7 +117,7 @@@ const Popover = (($) => this.setElementContent($tip.find(Selector.TITLE), this.getTitle()) this.setElementContent($tip.find(Selector.CONTENT), this._getContent()) - $tip - .removeClass(ClassName.FADE) - .removeClass(ClassName.ACTIVE) - $tip.removeClass(`${ClassName.FADE} ${ClassName.IN}`) ++ $tip.removeClass(`${ClassName.FADE} ${ClassName.ACTIVE}`) this.cleanupTether() } diff --cc js/src/tooltip.js index 94f77a2a4c,e0691f14c1..dbc9cf18c3 --- a/js/src/tooltip.js +++ b/js/src/tooltip.js @@@ -377,9 -371,7 +377,7 @@@ const Tooltip = (($) => this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle()) - $tip - .removeClass(ClassName.FADE) - .removeClass(ClassName.ACTIVE) - $tip.removeClass(`${ClassName.FADE} ${ClassName.IN}`) ++ $tip.removeClass(`${ClassName.FADE} ${ClassName.ACTIVE}`) this.cleanupTether() }