\n')}]);
\ No newline at end of file
+angular.module("toastr",[]).directive("toast",["$compile","$timeout","toastr",function(a,b,c){return{replace:!0,templateUrl:"templates/toastr/toastr.html",link:function(d,e){function f(a){return b(function(){c.remove(d.toastId)},a)}var g;if(d.toastClass=d.options.toastClass,d.titleClass=d.options.titleClass,d.messageClass=d.options.messageClass,d.options.closeHtml){var h=angular.element(d.options.closeHtml);h.addClass("toast-close-button"),h.attr("ng-click","close()"),a(h)(d),e.prepend(h)}d.init=function(){d.options.timeOut&&(g=f(d.options.timeOut))},e.on("mouseenter",function(){g&&b.cancel(g)}),d.tapToast=function(){d.options.tapToDismiss&&d.close()},d.close=function(){c.remove(d.toastId)},e.on("mouseleave",function(){(0!==d.options.timeOut||0!==d.options.extendedTimeOut)&&(g=f(d.options.extendedTimeOut))})}}}]).constant("toastrConfig",{allowHtml:!1,closeButton:!1,closeHtml:"",containerId:"toast-container",extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},messageClass:"toast-message",positionClass:"toast-top-right",tapToDismiss:!0,timeOut:5e3,titleClass:"toast-title",toastClass:"toast"}).factory("toastr",["$animate","$compile","$document","$rootScope","$sce","toastrConfig","$q",function(a,b,c,d,e,f,g){function h(a){if(a)p(a.toastId);else for(var b=0;b"),q.attr("id",b.containerId),q.addClass(b.positionClass),q.css({"pointer-events":"auto"});var d=c.find("body").eq(0);return a.enter(q,d,null,function(){t.resolve()}),t.promise}function o(c){function g(a,b,c){c.allowHtml?(a.scope.allowHtml=!0,a.scope.title=e.trustAsHtml(b.title),a.scope.message=e.trustAsHtml(b.message)):(a.scope.title=b.title,a.scope.message=b.message),a.scope.toastType=a.iconClass,a.scope.toastId=a.toastId,a.scope.options={extendedTimeOut:c.extendedTimeOut,messageClass:c.messageClass,tapToDismiss:c.tapToDismiss,timeOut:c.timeOut,titleClass:c.titleClass,toastClass:c.toastClass},c.closeButton&&(a.scope.options.closeHtml=c.closeHtml)}function h(a){var c=angular.element("");return b(c)(a)}var i=m(),j={toastId:r++,scope:d.$new()};return j.iconClass=c.iconClass,c.optionsOverride&&(i=angular.extend(i,c.optionsOverride),j.iconClass=c.optionsOverride.iconClass||j.iconClass),g(j,c,i),j.el=h(j.scope),s.push(j),n(i).then(function(){var b=f.newestOnTop?q.find("i"):null;a.enter(j.el,q,b,function(){j.scope.init()})}),j}function p(b){function c(a){for(var b=0;b\n
\n
{{title}}
\n
{{message}}
\n \n \n
\n')}]);
\ No newline at end of file
diff --git a/src/toastr.js b/src/toastr.js
index 8cd1575..00942ec 100644
--- a/src/toastr.js
+++ b/src/toastr.js
@@ -144,7 +144,8 @@ angular.module('toastr', [])
function _setContainer(options) {
if(container) { return containerDefer.promise; } // If the container is there, don't create it.
- container = angular.element('');
+ // Inline element used for new-Toast positioning (in _notify)
+ container = angular.element('
');
container.attr('id', options.containerId);
container.addClass(options.positionClass);
container.css({'pointer-events': 'auto'});
@@ -175,7 +176,9 @@ angular.module('toastr', [])
toasts.push(newToast);
_setContainer(options).then(function() {
- $animate.enter(newToast.el, container, null, function() {
+ var after = toastrConfig.newestOnTop ? container.find('i') : null; // You could change the default
+
+ $animate.enter(newToast.el, container, after, function() {
newToast.scope.init();
});
});