@ -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
|
|