mirror of
https://github.com/twbs/bootstrap.git
synced 2022-11-09 12:25:43 -05:00
269 lines
7.1 KiB
JavaScript
269 lines
7.1 KiB
JavaScript
/*!
|
|
* Bootstrap toast.js v4.1.3 (https://getbootstrap.com/)
|
|
* Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
|
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
*/
|
|
(function (global, factory) {
|
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./util.js')) :
|
|
typeof define === 'function' && define.amd ? define(['jquery', './util.js'], factory) :
|
|
(global.Toast = factory(global.jQuery,global.Util));
|
|
}(this, (function ($,Util) { 'use strict';
|
|
|
|
$ = $ && $.hasOwnProperty('default') ? $['default'] : $;
|
|
Util = Util && Util.hasOwnProperty('default') ? Util['default'] : Util;
|
|
|
|
function _defineProperties(target, props) {
|
|
for (var i = 0; i < props.length; i++) {
|
|
var descriptor = props[i];
|
|
descriptor.enumerable = descriptor.enumerable || false;
|
|
descriptor.configurable = true;
|
|
if ("value" in descriptor) descriptor.writable = true;
|
|
Object.defineProperty(target, descriptor.key, descriptor);
|
|
}
|
|
}
|
|
|
|
function _createClass(Constructor, protoProps, staticProps) {
|
|
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
|
if (staticProps) _defineProperties(Constructor, staticProps);
|
|
return Constructor;
|
|
}
|
|
|
|
function _defineProperty(obj, key, value) {
|
|
if (key in obj) {
|
|
Object.defineProperty(obj, key, {
|
|
value: value,
|
|
enumerable: true,
|
|
configurable: true,
|
|
writable: true
|
|
});
|
|
} else {
|
|
obj[key] = value;
|
|
}
|
|
|
|
return obj;
|
|
}
|
|
|
|
function _objectSpread(target) {
|
|
for (var i = 1; i < arguments.length; i++) {
|
|
var source = arguments[i] != null ? arguments[i] : {};
|
|
var ownKeys = Object.keys(source);
|
|
|
|
if (typeof Object.getOwnPropertySymbols === 'function') {
|
|
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
|
|
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
}));
|
|
}
|
|
|
|
ownKeys.forEach(function (key) {
|
|
_defineProperty(target, key, source[key]);
|
|
});
|
|
}
|
|
|
|
return target;
|
|
}
|
|
|
|
/**
|
|
* ------------------------------------------------------------------------
|
|
* Constants
|
|
* ------------------------------------------------------------------------
|
|
*/
|
|
|
|
var NAME = 'toast';
|
|
var VERSION = '4.1.3';
|
|
var DATA_KEY = 'bs.toast';
|
|
var EVENT_KEY = "." + DATA_KEY;
|
|
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
|
var Event = {
|
|
CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
|
|
HIDE: "hide" + EVENT_KEY,
|
|
HIDDEN: "hidden" + EVENT_KEY,
|
|
SHOW: "show" + EVENT_KEY,
|
|
SHOWN: "shown" + EVENT_KEY
|
|
};
|
|
var ClassName = {
|
|
FADE: 'fade',
|
|
HIDE: 'hide',
|
|
SHOW: 'show'
|
|
};
|
|
var DefaultType = {
|
|
animation: 'boolean',
|
|
autohide: 'boolean',
|
|
delay: 'number'
|
|
};
|
|
var Default = {
|
|
animation: true,
|
|
autohide: true,
|
|
delay: 500
|
|
};
|
|
var Selector = {
|
|
DATA_DISMISS: '[data-dismiss="toast"]'
|
|
/**
|
|
* ------------------------------------------------------------------------
|
|
* Class Definition
|
|
* ------------------------------------------------------------------------
|
|
*/
|
|
|
|
};
|
|
|
|
var Toast =
|
|
/*#__PURE__*/
|
|
function () {
|
|
function Toast(element, config) {
|
|
this._element = element;
|
|
this._config = this._getConfig(config);
|
|
this._timeout = null;
|
|
|
|
this._setListeners();
|
|
} // Getters
|
|
|
|
|
|
var _proto = Toast.prototype;
|
|
|
|
// Public
|
|
_proto.show = function show() {
|
|
var _this = this;
|
|
|
|
$(this._element).trigger(Event.SHOW);
|
|
|
|
if (this._config.animation) {
|
|
this._element.classList.add(ClassName.FADE);
|
|
}
|
|
|
|
var complete = function complete() {
|
|
$(_this._element).trigger(Event.SHOWN);
|
|
|
|
if (_this._config.autohide) {
|
|
_this.hide();
|
|
}
|
|
};
|
|
|
|
this._element.classList.add(ClassName.SHOW);
|
|
|
|
if (this._config.animation) {
|
|
var transitionDuration = Util.getTransitionDurationFromElement(this._element);
|
|
$(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
|
|
} else {
|
|
complete();
|
|
}
|
|
};
|
|
|
|
_proto.hide = function hide(withoutTimeout) {
|
|
var _this2 = this;
|
|
|
|
if (!this._element.classList.contains(ClassName.SHOW)) {
|
|
return;
|
|
}
|
|
|
|
$(this._element).trigger(Event.HIDE);
|
|
|
|
if (withoutTimeout) {
|
|
this._close();
|
|
} else {
|
|
this._timeout = setTimeout(function () {
|
|
_this2._close();
|
|
}, this._config.delay);
|
|
}
|
|
};
|
|
|
|
_proto.dispose = function dispose() {
|
|
clearTimeout(this._timeout);
|
|
this._timeout = null;
|
|
|
|
if (this._element.classList.contains(ClassName.SHOW)) {
|
|
this._element.classList.remove(ClassName.SHOW);
|
|
}
|
|
|
|
$(this._element).off(Event.CLICK_DISMISS);
|
|
$.removeData(this._element, DATA_KEY);
|
|
this._element = null;
|
|
this._config = null;
|
|
}; // Private
|
|
|
|
|
|
_proto._getConfig = function _getConfig(config) {
|
|
config = _objectSpread({}, Default, $(this._element).data(), typeof config === 'object' && config ? config : {});
|
|
Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
|
|
return config;
|
|
};
|
|
|
|
_proto._setListeners = function _setListeners() {
|
|
var _this3 = this;
|
|
|
|
$(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function () {
|
|
return _this3.hide(true);
|
|
});
|
|
};
|
|
|
|
_proto._close = function _close() {
|
|
var _this4 = this;
|
|
|
|
var complete = function complete() {
|
|
$(_this4._element).trigger(Event.HIDDEN);
|
|
};
|
|
|
|
this._element.classList.remove(ClassName.SHOW);
|
|
|
|
if (this._config.animation) {
|
|
var transitionDuration = Util.getTransitionDurationFromElement(this._element);
|
|
$(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);
|
|
} else {
|
|
complete();
|
|
}
|
|
}; // Static
|
|
|
|
|
|
Toast._jQueryInterface = function _jQueryInterface(config) {
|
|
return this.each(function () {
|
|
var $element = $(this);
|
|
var data = $element.data(DATA_KEY);
|
|
|
|
var _config = typeof config === 'object' && config;
|
|
|
|
if (!data) {
|
|
data = new Toast(this, _config);
|
|
$element.data(DATA_KEY, data);
|
|
}
|
|
|
|
if (typeof config === 'string') {
|
|
if (typeof data[config] === 'undefined') {
|
|
throw new TypeError("No method named \"" + config + "\"");
|
|
}
|
|
|
|
data[config](this);
|
|
}
|
|
});
|
|
};
|
|
|
|
_createClass(Toast, null, [{
|
|
key: "VERSION",
|
|
get: function get() {
|
|
return VERSION;
|
|
}
|
|
}, {
|
|
key: "DefaultType",
|
|
get: function get() {
|
|
return DefaultType;
|
|
}
|
|
}]);
|
|
|
|
return Toast;
|
|
}();
|
|
/**
|
|
* ------------------------------------------------------------------------
|
|
* jQuery
|
|
* ------------------------------------------------------------------------
|
|
*/
|
|
|
|
|
|
$.fn[NAME] = Toast._jQueryInterface;
|
|
$.fn[NAME].Constructor = Toast;
|
|
|
|
$.fn[NAME].noConflict = function () {
|
|
$.fn[NAME] = JQUERY_NO_CONFLICT;
|
|
return Toast._jQueryInterface;
|
|
};
|
|
|
|
return Toast;
|
|
|
|
})));
|
|
//# sourceMappingURL=toast.js.map
|