aboutsummaryrefslogtreecommitdiffstats
path: root/library/bootstrap/js/bootstrap.js
diff options
context:
space:
mode:
Diffstat (limited to 'library/bootstrap/js/bootstrap.js')
-rw-r--r--library/bootstrap/js/bootstrap.js73
1 files changed, 39 insertions, 34 deletions
diff --git a/library/bootstrap/js/bootstrap.js b/library/bootstrap/js/bootstrap.js
index 550c9d674..5f2db5c86 100644
--- a/library/bootstrap/js/bootstrap.js
+++ b/library/bootstrap/js/bootstrap.js
@@ -631,10 +631,9 @@ var Carousel = function ($) {
// public
Carousel.prototype.next = function next() {
- if (this._isSliding) {
- throw new Error('Carousel is sliding');
+ if (!this._isSliding) {
+ this._slide(Direction.NEXT);
}
- this._slide(Direction.NEXT);
};
Carousel.prototype.nextWhenVisible = function nextWhenVisible() {
@@ -645,10 +644,9 @@ var Carousel = function ($) {
};
Carousel.prototype.prev = function prev() {
- if (this._isSliding) {
- throw new Error('Carousel is sliding');
+ if (!this._isSliding) {
+ this._slide(Direction.PREV);
}
- this._slide(Direction.PREV);
};
Carousel.prototype.pause = function pause(event) {
@@ -1117,11 +1115,7 @@ var Collapse = function ($) {
Collapse.prototype.show = function show() {
var _this6 = this;
- if (this._isTransitioning) {
- throw new Error('Collapse is transitioning');
- }
-
- if ($(this._element).hasClass(ClassName.SHOW)) {
+ if (this._isTransitioning || $(this._element).hasClass(ClassName.SHOW)) {
return;
}
@@ -1194,11 +1188,7 @@ var Collapse = function ($) {
Collapse.prototype.hide = function hide() {
var _this7 = this;
- if (this._isTransitioning) {
- throw new Error('Collapse is transitioning');
- }
-
- if (!$(this._element).hasClass(ClassName.SHOW)) {
+ if (this._isTransitioning || !$(this._element).hasClass(ClassName.SHOW)) {
return;
}
@@ -1344,7 +1334,7 @@ var Collapse = function ($) {
*/
$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {
- if (/input|textarea/i.test(event.target.tagName)) {
+ if (!/input|textarea/i.test(event.target.tagName)) {
event.preventDefault();
}
@@ -1743,7 +1733,6 @@ var Modal = function ($) {
this._isShown = false;
this._isBodyOverflowing = false;
this._ignoreBackdropClick = false;
- this._isTransitioning = false;
this._originalBodyPadding = 0;
this._scrollbarWidth = 0;
}
@@ -1760,12 +1749,13 @@ var Modal = function ($) {
var _this9 = this;
if (this._isTransitioning) {
- throw new Error('Modal is transitioning');
+ return;
}
if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
this._isTransitioning = true;
}
+
var showEvent = $.Event(Event.SHOW, {
relatedTarget: relatedTarget
});
@@ -1810,16 +1800,18 @@ var Modal = function ($) {
event.preventDefault();
}
- if (this._isTransitioning) {
- throw new Error('Modal is transitioning');
+ if (this._isTransitioning || !this._isShown) {
+ return;
}
var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
+
if (transition) {
this._isTransitioning = true;
}
var hideEvent = $.Event(Event.HIDE);
+
$(this._element).trigger(hideEvent);
if (!this._isShown || hideEvent.isDefaultPrevented()) {
@@ -1839,6 +1831,7 @@ var Modal = function ($) {
$(this._dialog).off(Event.MOUSEDOWN_DISMISS);
if (transition) {
+
$(this._element).one(Util.TRANSITION_END, function (event) {
return _this10._hideModal(event);
}).emulateTransitionEnd(TRANSITION_DURATION);
@@ -1959,7 +1952,7 @@ var Modal = function ($) {
var _this15 = this;
this._element.style.display = 'none';
- this._element.setAttribute('aria-hidden', 'true');
+ this._element.setAttribute('aria-hidden', true);
this._isTransitioning = false;
this._showBackdrop(function () {
$(document.body).removeClass(ClassName.OPEN);
@@ -2794,6 +2787,7 @@ var Tooltip = function ($) {
var JQUERY_NO_CONFLICT = $.fn[NAME];
var TRANSITION_DURATION = 150;
var CLASS_PREFIX = 'bs-tether';
+ var TETHER_PREFIX_REGEX = new RegExp('(^|\\s)' + CLASS_PREFIX + '\\S+', 'g');
var Default = {
animation: true,
@@ -2885,7 +2879,6 @@ var Tooltip = function ($) {
this._timeout = 0;
this._hoverState = '';
this._activeTrigger = {};
- this._isTransitioning = false;
this._tether = null;
// protected
@@ -2974,9 +2967,6 @@ var Tooltip = function ($) {
var showEvent = $.Event(this.constructor.Event.SHOW);
if (this.isWithContent() && this._isEnabled) {
- if (this._isTransitioning) {
- throw new Error('Tooltip is transitioning');
- }
$(this.element).trigger(showEvent);
var isInTheDom = $.contains(this.element.ownerDocument.documentElement, this.element);
@@ -3003,7 +2993,11 @@ var Tooltip = function ($) {
var container = this.config.container === false ? document.body : $(this.config.container);
- $(tip).data(this.constructor.DATA_KEY, this).appendTo(container);
+ $(tip).data(this.constructor.DATA_KEY, this);
+
+ if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {
+ $(tip).appendTo(container);
+ }
$(this.element).trigger(this.constructor.Event.INSERTED);
@@ -3026,7 +3020,6 @@ var Tooltip = function ($) {
var complete = function complete() {
var prevHoverState = _this22._hoverState;
_this22._hoverState = null;
- _this22._isTransitioning = false;
$(_this22.element).trigger(_this22.constructor.Event.SHOWN);
@@ -3036,7 +3029,6 @@ var Tooltip = function ($) {
};
if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
- this._isTransitioning = true;
$(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION);
return;
}
@@ -3050,17 +3042,14 @@ var Tooltip = function ($) {
var tip = this.getTipElement();
var hideEvent = $.Event(this.constructor.Event.HIDE);
- if (this._isTransitioning) {
- throw new Error('Tooltip is transitioning');
- }
var complete = function complete() {
if (_this23._hoverState !== HoverState.SHOW && tip.parentNode) {
tip.parentNode.removeChild(tip);
}
+ _this23._cleanTipClass();
_this23.element.removeAttribute('aria-describedby');
$(_this23.element).trigger(_this23.constructor.Event.HIDDEN);
- _this23._isTransitioning = false;
_this23.cleanupTether();
if (callback) {
@@ -3081,7 +3070,7 @@ var Tooltip = function ($) {
this._activeTrigger[Trigger.HOVER] = false;
if (Util.supportsTransitionEnd() && $(this.tip).hasClass(ClassName.FADE)) {
- this._isTransitioning = true;
+
$(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
} else {
complete();
@@ -3148,6 +3137,14 @@ var Tooltip = function ($) {
return AttachmentMap[placement.toUpperCase()];
};
+ Tooltip.prototype._cleanTipClass = function _cleanTipClass() {
+ var $tip = $(this.getTipElement());
+ var tabClass = $tip.attr('class').match(TETHER_PREFIX_REGEX);
+ if (tabClass !== null && tabClass.length > 0) {
+ $tip.removeClass(tabClass.join(''));
+ }
+ };
+
Tooltip.prototype._setListeners = function _setListeners() {
var _this24 = this;
@@ -3281,6 +3278,14 @@ var Tooltip = function ($) {
};
}
+ if (config.title && typeof config.title === 'number') {
+ config.title = config.title.toString();
+ }
+
+ if (config.content && typeof config.content === 'number') {
+ config.content = config.content.toString();
+ }
+
Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
return config;