@ -0,0 +1,200 @@ |
|||
.toast-title { |
|||
font-weight: bold; |
|||
} |
|||
.toast-message { |
|||
-ms-word-wrap: break-word; |
|||
word-wrap: break-word; |
|||
} |
|||
.toast-message a, |
|||
.toast-message label { |
|||
color: #ffffff; |
|||
} |
|||
.toast-message a:hover { |
|||
color: #cccccc; |
|||
text-decoration: none; |
|||
} |
|||
.toast-close-button { |
|||
position: relative; |
|||
right: -0.3em; |
|||
top: -0.3em; |
|||
float: right; |
|||
font-size: 20px; |
|||
font-weight: bold; |
|||
color: #ffffff; |
|||
-webkit-text-shadow: 0 1px 0 #ffffff; |
|||
text-shadow: 0 1px 0 #ffffff; |
|||
opacity: 0.8; |
|||
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); |
|||
filter: alpha(opacity=80); |
|||
} |
|||
.toast-close-button:hover, |
|||
.toast-close-button:focus { |
|||
color: #000000; |
|||
text-decoration: none; |
|||
cursor: pointer; |
|||
opacity: 0.4; |
|||
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40); |
|||
filter: alpha(opacity=40); |
|||
} |
|||
/*Additional properties for button version |
|||
iOS requires the button element instead of an anchor tag. |
|||
If you want the anchor version, it requires `href="#"`.*/ |
|||
button.toast-close-button { |
|||
padding: 0; |
|||
cursor: pointer; |
|||
background: transparent; |
|||
border: 0; |
|||
-webkit-appearance: none; |
|||
} |
|||
.toast-top-center { |
|||
top: 0; |
|||
right: 0; |
|||
width: 100%; |
|||
} |
|||
.toast-bottom-center { |
|||
bottom: 0; |
|||
right: 0; |
|||
width: 100%; |
|||
} |
|||
.toast-top-full-width { |
|||
top: 0; |
|||
right: 0; |
|||
width: 100%; |
|||
} |
|||
.toast-bottom-full-width { |
|||
bottom: 0; |
|||
right: 0; |
|||
width: 100%; |
|||
} |
|||
.toast-top-left { |
|||
top: 12px; |
|||
left: 12px; |
|||
} |
|||
.toast-top-right { |
|||
top: 12px; |
|||
right: 12px; |
|||
} |
|||
.toast-bottom-right { |
|||
right: 12px; |
|||
bottom: 12px; |
|||
} |
|||
.toast-bottom-left { |
|||
bottom: 12px; |
|||
left: 12px; |
|||
} |
|||
#toast-container { |
|||
position: fixed; |
|||
z-index: 999999; |
|||
/*overrides*/ |
|||
|
|||
} |
|||
#toast-container * { |
|||
-moz-box-sizing: border-box; |
|||
-webkit-box-sizing: border-box; |
|||
box-sizing: border-box; |
|||
} |
|||
#toast-container > div { |
|||
position: relative; |
|||
overflow: hidden; |
|||
margin: 0 0 6px; |
|||
padding: 15px 15px 15px 50px; |
|||
width: 300px; |
|||
-moz-border-radius: 3px 3px 3px 3px; |
|||
-webkit-border-radius: 3px 3px 3px 3px; |
|||
border-radius: 3px 3px 3px 3px; |
|||
background-position: 15px center; |
|||
background-repeat: no-repeat; |
|||
-moz-box-shadow: 0 0 12px #999999; |
|||
-webkit-box-shadow: 0 0 12px #999999; |
|||
box-shadow: 0 0 12px #999999; |
|||
color: #ffffff; |
|||
opacity: 0.8; |
|||
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); |
|||
filter: alpha(opacity=80); |
|||
} |
|||
#toast-container > :hover { |
|||
-moz-box-shadow: 0 0 12px #000000; |
|||
-webkit-box-shadow: 0 0 12px #000000; |
|||
box-shadow: 0 0 12px #000000; |
|||
opacity: 1; |
|||
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); |
|||
filter: alpha(opacity=100); |
|||
cursor: pointer; |
|||
} |
|||
#toast-container > .toast-info { |
|||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important; |
|||
} |
|||
#toast-container > .toast-error { |
|||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important; |
|||
/*original --> background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important; */ |
|||
|
|||
} |
|||
#toast-container > .toast-success { |
|||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important; |
|||
} |
|||
#toast-container > .toast-warning { |
|||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important; |
|||
/*original--> background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important; */ |
|||
} |
|||
#toast-container.toast-top-center > div, |
|||
#toast-container.toast-bottom-center > div { |
|||
width: 300px; |
|||
margin: auto; |
|||
} |
|||
#toast-container.toast-top-full-width > div, |
|||
#toast-container.toast-bottom-full-width > div { |
|||
width: 96%; |
|||
margin: auto; |
|||
} |
|||
.toast { |
|||
background-color: #030303; |
|||
} |
|||
.toast-success { |
|||
background-color: #51a351; |
|||
} |
|||
.toast-error { |
|||
background-color: #bd362f; |
|||
} |
|||
.toast-info { |
|||
background-color: #2f96b4; |
|||
} |
|||
.toast-warning { |
|||
background-color: #f89406; |
|||
} |
|||
.toast-progress { |
|||
position: absolute; |
|||
left: 0; |
|||
bottom: 0; |
|||
height: 4px; |
|||
background-color: #000000; |
|||
opacity: 0.4; |
|||
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40); |
|||
filter: alpha(opacity=40); |
|||
} |
|||
/*Responsive Design*/ |
|||
@media all and (max-width: 240px) { |
|||
#toast-container > div { |
|||
padding: 8px 8px 8px 50px; |
|||
width: 11em; |
|||
} |
|||
#toast-container .toast-close-button { |
|||
right: -0.2em; |
|||
top: -0.2em; |
|||
} |
|||
} |
|||
@media all and (min-width: 241px) and (max-width: 480px) { |
|||
#toast-container > div { |
|||
padding: 8px 8px 8px 50px; |
|||
width: 18em; |
|||
} |
|||
#toast-container .toast-close-button { |
|||
right: -0.2em; |
|||
top: -0.2em; |
|||
} |
|||
} |
|||
@media all and (min-width: 481px) and (max-width: 768px) { |
|||
#toast-container > div { |
|||
padding: 15px 15px 15px 50px; |
|||
width: 25em; |
|||
} |
|||
} |
@ -0,0 +1,415 @@ |
|||
/* |
|||
* Toastr |
|||
* Copyright 2012-2015 |
|||
* Authors: John Papa, Hans Fjällemark, and Tim Ferrell. |
|||
* All Rights Reserved. |
|||
* Use, reproduction, distribution, and modification of this code is subject to the terms and |
|||
* conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php
|
|||
* |
|||
* ARIA Support: Greta Krafsig |
|||
* |
|||
* Project: https://github.com/CodeSeven/toastr
|
|||
*/ |
|||
/* global define */ |
|||
; (function (define) { |
|||
define(['jquery'], function ($) { |
|||
return (function () { |
|||
var $container; |
|||
var listener; |
|||
var toastId = 0; |
|||
var toastType = { |
|||
error: 'error', |
|||
info: 'info', |
|||
success: 'success', |
|||
warning: 'warning' |
|||
}; |
|||
|
|||
var toastr = { |
|||
clear: clear, |
|||
remove: remove, |
|||
error: error, |
|||
getContainer: getContainer, |
|||
info: info, |
|||
options: {}, |
|||
subscribe: subscribe, |
|||
success: success, |
|||
version: '2.1.1', |
|||
warning: warning |
|||
}; |
|||
|
|||
var previousToast; |
|||
|
|||
return toastr; |
|||
|
|||
////////////////
|
|||
|
|||
function error(message, title, optionsOverride) { |
|||
return notify({ |
|||
type: toastType.error, |
|||
iconClass: getOptions().iconClasses.error, |
|||
message: message, |
|||
optionsOverride: optionsOverride, |
|||
title: title |
|||
}); |
|||
} |
|||
|
|||
function getContainer(options, create) { |
|||
if (!options) { options = getOptions(); } |
|||
$container = $('#' + options.containerId); |
|||
if ($container.length) { |
|||
return $container; |
|||
} |
|||
if (create) { |
|||
$container = createContainer(options); |
|||
} |
|||
return $container; |
|||
} |
|||
|
|||
function info(message, title, optionsOverride) { |
|||
return notify({ |
|||
type: toastType.info, |
|||
iconClass: getOptions().iconClasses.info, |
|||
message: message, |
|||
optionsOverride: optionsOverride, |
|||
title: title |
|||
}); |
|||
} |
|||
|
|||
function subscribe(callback) { |
|||
listener = callback; |
|||
} |
|||
|
|||
function success(message, title, optionsOverride) { |
|||
return notify({ |
|||
type: toastType.success, |
|||
iconClass: getOptions().iconClasses.success, |
|||
message: message, |
|||
optionsOverride: optionsOverride, |
|||
title: title |
|||
}); |
|||
} |
|||
|
|||
function warning(message, title, optionsOverride) { |
|||
return notify({ |
|||
type: toastType.warning, |
|||
iconClass: getOptions().iconClasses.warning, |
|||
message: message, |
|||
optionsOverride: optionsOverride, |
|||
title: title |
|||
}); |
|||
} |
|||
|
|||
function clear($toastElement, clearOptions) { |
|||
var options = getOptions(); |
|||
if (!$container) { getContainer(options); } |
|||
if (!clearToast($toastElement, options, clearOptions)) { |
|||
clearContainer(options); |
|||
} |
|||
} |
|||
|
|||
function remove($toastElement) { |
|||
var options = getOptions(); |
|||
if (!$container) { getContainer(options); } |
|||
if ($toastElement && $(':focus', $toastElement).length === 0) { |
|||
removeToast($toastElement); |
|||
return; |
|||
} |
|||
if ($container.children().length) { |
|||
$container.remove(); |
|||
} |
|||
} |
|||
|
|||
// internal functions
|
|||
|
|||
function clearContainer (options) { |
|||
var toastsToClear = $container.children(); |
|||
for (var i = toastsToClear.length - 1; i >= 0; i--) { |
|||
clearToast($(toastsToClear[i]), options); |
|||
} |
|||
} |
|||
|
|||
function clearToast ($toastElement, options, clearOptions) { |
|||
var force = clearOptions && clearOptions.force ? clearOptions.force : false; |
|||
if ($toastElement && (force || $(':focus', $toastElement).length === 0)) { |
|||
$toastElement[options.hideMethod]({ |
|||
duration: options.hideDuration, |
|||
easing: options.hideEasing, |
|||
complete: function () { removeToast($toastElement); } |
|||
}); |
|||
return true; |
|||
} |
|||
return false; |
|||
} |
|||
|
|||
function createContainer(options) { |
|||
$container = $('<div/>') |
|||
.attr('id', options.containerId) |
|||
.addClass(options.positionClass) |
|||
.attr('aria-live', 'polite') |
|||
.attr('role', 'alert'); |
|||
|
|||
$container.appendTo($(options.target)); |
|||
return $container; |
|||
} |
|||
|
|||
function getDefaults() { |
|||
return { |
|||
tapToDismiss: true, |
|||
toastClass: 'toast', |
|||
containerId: 'toast-container', |
|||
debug: false, |
|||
|
|||
showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery
|
|||
showDuration: 300, |
|||
showEasing: 'swing', //swing and linear are built into jQuery
|
|||
onShown: undefined, |
|||
hideMethod: 'fadeOut', |
|||
hideDuration: 1000, |
|||
hideEasing: 'swing', |
|||
onHidden: undefined, |
|||
|
|||
extendedTimeOut: 1000, |
|||
iconClasses: { |
|||
error: 'toast-error', |
|||
info: 'toast-info', |
|||
success: 'toast-success', |
|||
warning: 'toast-warning' |
|||
}, |
|||
iconClass: 'toast-info', |
|||
positionClass: 'toast-bottom-right', |
|||
timeOut: 7000, // Set timeOut and extendedTimeOut to 0 to make it sticky
|
|||
titleClass: 'toast-title', |
|||
messageClass: 'toast-message', |
|||
target: 'body', |
|||
closeHtml: '<button type="button">×</button>', |
|||
newestOnTop: false, |
|||
preventDuplicates: false, |
|||
progressBar: false |
|||
}; |
|||
} |
|||
|
|||
function publish(args) { |
|||
if (!listener) { return; } |
|||
listener(args); |
|||
} |
|||
|
|||
function notify(map) { |
|||
var options = getOptions(); |
|||
var iconClass = map.iconClass || options.iconClass; |
|||
|
|||
if (typeof (map.optionsOverride) !== 'undefined') { |
|||
options = $.extend(options, map.optionsOverride); |
|||
iconClass = map.optionsOverride.iconClass || iconClass; |
|||
} |
|||
|
|||
if (shouldExit(options, map)) { return; } |
|||
|
|||
toastId++; |
|||
|
|||
$container = getContainer(options, true); |
|||
|
|||
var intervalId = null; |
|||
var $toastElement = $('<div/>'); |
|||
var $titleElement = $('<div/>'); |
|||
var $messageElement = $('<div/>'); |
|||
var $progressElement = $('<div/>'); |
|||
var $closeElement = $(options.closeHtml); |
|||
var progressBar = { |
|||
intervalId: null, |
|||
hideEta: null, |
|||
maxHideTime: null |
|||
}; |
|||
var response = { |
|||
toastId: toastId, |
|||
state: 'visible', |
|||
startTime: new Date(), |
|||
options: options, |
|||
map: map |
|||
}; |
|||
|
|||
personalizeToast(); |
|||
|
|||
displayToast(); |
|||
|
|||
handleEvents(); |
|||
|
|||
publish(response); |
|||
|
|||
if (options.debug && console) { |
|||
console.log(response); |
|||
} |
|||
|
|||
return $toastElement; |
|||
|
|||
function personalizeToast() { |
|||
setIcon(); |
|||
setTitle(); |
|||
setMessage(); |
|||
setCloseButton(); |
|||
setProgressBar(); |
|||
setSequence(); |
|||
} |
|||
|
|||
function handleEvents() { |
|||
$toastElement.hover(stickAround, delayedHideToast); |
|||
if (!options.onclick && options.tapToDismiss) { |
|||
$toastElement.click(hideToast); |
|||
} |
|||
|
|||
if (options.closeButton && $closeElement) { |
|||
$closeElement.click(function (event) { |
|||
if (event.stopPropagation) { |
|||
event.stopPropagation(); |
|||
} else if (event.cancelBubble !== undefined && event.cancelBubble !== true) { |
|||
event.cancelBubble = true; |
|||
} |
|||
hideToast(true); |
|||
}); |
|||
} |
|||
|
|||
if (options.onclick) { |
|||
$toastElement.click(function () { |
|||
options.onclick(); |
|||
hideToast(); |
|||
}); |
|||
} |
|||
} |
|||
|
|||
function displayToast() { |
|||
$toastElement.hide(); |
|||
|
|||
$toastElement[options.showMethod]( |
|||
{duration: options.showDuration, easing: options.showEasing, complete: options.onShown} |
|||
); |
|||
|
|||
if (options.timeOut > 0) { |
|||
intervalId = setTimeout(hideToast, options.timeOut); |
|||
progressBar.maxHideTime = parseFloat(options.timeOut); |
|||
progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime; |
|||
if (options.progressBar) { |
|||
progressBar.intervalId = setInterval(updateProgress, 10); |
|||
} |
|||
} |
|||
} |
|||
|
|||
function setIcon() { |
|||
if (map.iconClass) { |
|||
$toastElement.addClass(options.toastClass).addClass(iconClass); |
|||
} |
|||
} |
|||
|
|||
function setSequence() { |
|||
if (options.newestOnTop) { |
|||
$container.prepend($toastElement); |
|||
} else { |
|||
$container.append($toastElement); |
|||
} |
|||
} |
|||
|
|||
function setTitle() { |
|||
if (map.title) { |
|||
$titleElement.append(map.title).addClass(options.titleClass); |
|||
$toastElement.append($titleElement); |
|||
} |
|||
} |
|||
|
|||
function setMessage() { |
|||
if (map.message) { |
|||
$messageElement.append(map.message).addClass(options.messageClass); |
|||
$toastElement.append($messageElement); |
|||
} |
|||
} |
|||
|
|||
function setCloseButton() { |
|||
if (options.closeButton) { |
|||
$closeElement.addClass('toast-close-button').attr('role', 'button'); |
|||
$toastElement.prepend($closeElement); |
|||
} |
|||
} |
|||
|
|||
function setProgressBar() { |
|||
if (options.progressBar) { |
|||
$progressElement.addClass('toast-progress'); |
|||
$toastElement.prepend($progressElement); |
|||
} |
|||
} |
|||
|
|||
function shouldExit(options, map) { |
|||
if (options.preventDuplicates) { |
|||
if (map.message === previousToast) { |
|||
return true; |
|||
} else { |
|||
previousToast = map.message; |
|||
} |
|||
} |
|||
return false; |
|||
} |
|||
|
|||
function hideToast(override) { |
|||
if ($(':focus', $toastElement).length && !override) { |
|||
return; |
|||
} |
|||
clearTimeout(progressBar.intervalId); |
|||
return $toastElement[options.hideMethod]({ |
|||
duration: options.hideDuration, |
|||
easing: options.hideEasing, |
|||
complete: function () { |
|||
removeToast($toastElement); |
|||
if (options.onHidden && response.state !== 'hidden') { |
|||
options.onHidden(); |
|||
} |
|||
response.state = 'hidden'; |
|||
response.endTime = new Date(); |
|||
publish(response); |
|||
} |
|||
}); |
|||
} |
|||
|
|||
function delayedHideToast() { |
|||
if (options.timeOut > 0 || options.extendedTimeOut > 0) { |
|||
intervalId = setTimeout(hideToast, options.extendedTimeOut); |
|||
progressBar.maxHideTime = parseFloat(options.extendedTimeOut); |
|||
progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime; |
|||
} |
|||
} |
|||
|
|||
function stickAround() { |
|||
clearTimeout(intervalId); |
|||
progressBar.hideEta = 0; |
|||
$toastElement.stop(true, true)[options.showMethod]( |
|||
{duration: options.showDuration, easing: options.showEasing} |
|||
); |
|||
} |
|||
|
|||
function updateProgress() { |
|||
var percentage = ((progressBar.hideEta - (new Date().getTime())) / progressBar.maxHideTime) * 100; |
|||
$progressElement.width(percentage + '%'); |
|||
} |
|||
} |
|||
|
|||
function getOptions() { |
|||
return $.extend({}, getDefaults(), toastr.options); |
|||
} |
|||
|
|||
function removeToast($toastElement) { |
|||
if (!$container) { $container = getContainer(); } |
|||
if ($toastElement.is(':visible')) { |
|||
return; |
|||
} |
|||
$toastElement.remove(); |
|||
$toastElement = null; |
|||
if ($container.children().length === 0) { |
|||
$container.remove(); |
|||
previousToast = undefined; |
|||
} |
|||
} |
|||
|
|||
})(); |
|||
}); |
|||
}(typeof define === 'function' && define.amd ? define : function (deps, factory) { |
|||
if (typeof module !== 'undefined' && module.exports) { //Node
|
|||
module.exports = factory(require('jquery')); |
|||
} else { |
|||
window['toastr'] = factory(window['jQuery']); |
|||
} |
|||
})); |
@ -1,2 +0,0 @@ |
|||
!function(e){e(["jquery"],function(e){return function(){function t(e,t,n){return f({type:O.error,iconClass:g().iconClasses.error,message:e,optionsOverride:n,title:t})}function n(t,n){return t||(t=g()),v=e("#"+t.containerId),v.length?v:(n&&(v=c(t)),v)}function i(e,t,n){return f({type:O.info,iconClass:g().iconClasses.info,message:e,optionsOverride:n,title:t})}function o(e){w=e}function s(e,t,n){return f({type:O.success,iconClass:g().iconClasses.success,message:e,optionsOverride:n,title:t})}function a(e,t,n){return f({type:O.warning,iconClass:g().iconClasses.warning,message:e,optionsOverride:n,title:t})}function r(e){var t=g();v||n(t),l(e,t)||u(t)}function d(t){var i=g();return v||n(i),t&&0===e(":focus",t).length?void h(t):void(v.children().length&&v.remove())}function u(t){for(var n=v.children(),i=n.length-1;i>=0;i--)l(e(n[i]),t)}function l(t,n){return t&&0===e(":focus",t).length?(t[n.hideMethod]({duration:n.hideDuration,easing:n.hideEasing,complete:function(){h(t)}}),!0):!1}function c(t){return v=e("<div/>").attr("id",t.containerId).addClass(t.positionClass).attr("aria-live","polite").attr("role","alert"),v.appendTo(e(t.target)),v}function p(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",target:"body",closeHtml:'<button type="button">×</button>',newestOnTop:!0,preventDuplicates:!1,progressBar:!1}}function m(e){w&&w(e)}function f(t){function i(t){return!e(":focus",l).length||t?(clearTimeout(O.intervalId),l[r.hideMethod]({duration:r.hideDuration,easing:r.hideEasing,complete:function(){h(l),r.onHidden&&"hidden"!==b.state&&r.onHidden(),b.state="hidden",b.endTime=new Date,m(b)}})):void 0}function o(){(r.timeOut>0||r.extendedTimeOut>0)&&(u=setTimeout(i,r.extendedTimeOut),O.maxHideTime=parseFloat(r.extendedTimeOut),O.hideEta=(new Date).getTime()+O.maxHideTime)}function s(){clearTimeout(u),O.hideEta=0,l.stop(!0,!0)[r.showMethod]({duration:r.showDuration,easing:r.showEasing})}function a(){var e=(O.hideEta-(new Date).getTime())/O.maxHideTime*100;f.width(e+"%")}var r=g(),d=t.iconClass||r.iconClass;if("undefined"!=typeof t.optionsOverride&&(r=e.extend(r,t.optionsOverride),d=t.optionsOverride.iconClass||d),r.preventDuplicates){if(t.message===C)return;C=t.message}T++,v=n(r,!0);var u=null,l=e("<div/>"),c=e("<div/>"),p=e("<div/>"),f=e("<div/>"),w=e(r.closeHtml),O={intervalId:null,hideEta:null,maxHideTime:null},b={toastId:T,state:"visible",startTime:new Date,options:r,map:t};return t.iconClass&&l.addClass(r.toastClass).addClass(d),t.title&&(c.append(t.title).addClass(r.titleClass),l.append(c)),t.message&&(p.append(t.message).addClass(r.messageClass),l.append(p)),r.closeButton&&(w.addClass("toast-close-button").attr("role","button"),l.prepend(w)),r.progressBar&&(f.addClass("toast-progress"),l.prepend(f)),l.hide(),r.newestOnTop?v.prepend(l):v.append(l),l[r.showMethod]({duration:r.showDuration,easing:r.showEasing,complete:r.onShown}),r.timeOut>0&&(u=setTimeout(i,r.timeOut),O.maxHideTime=parseFloat(r.timeOut),O.hideEta=(new Date).getTime()+O.maxHideTime,r.progressBar&&(O.intervalId=setInterval(a,10))),l.hover(s,o),!r.onclick&&r.tapToDismiss&&l.click(i),r.closeButton&&w&&w.click(function(e){e.stopPropagation?e.stopPropagation():void 0!==e.cancelBubble&&e.cancelBubble!==!0&&(e.cancelBubble=!0),i(!0)}),r.onclick&&l.click(function(){r.onclick(),i()}),m(b),r.debug&&console&&console.log(b),l}function g(){return e.extend({},p(),b.options)}function h(e){v||(v=n()),e.is(":visible")||(e.remove(),e=null,0===v.children().length&&(v.remove(),C=void 0))}var v,w,C,T=0,O={error:"error",info:"info",success:"success",warning:"warning"},b={clear:r,remove:d,error:t,getContainer:n,info:i,options:{},subscribe:o,success:s,version:"2.1.0",warning:a};return b}()})}("function"==typeof define&&define.amd?define:function(e,t){"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):window.toastr=t(window.jQuery)}); |
|||
//# sourceMappingURL=toastr.js.map
|