diff --git a/dist/angular-toastr.js b/dist/angular-toastr.js index dfe37f2..dd2dfd0 100644 --- a/dist/angular-toastr.js +++ b/dist/angular-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(); }); }); diff --git a/dist/angular-toastr.min.js b/dist/angular-toastr.min.js index 745fa92..adb8cd6 100644 --- a/dist/angular-toastr.min.js +++ b/dist/angular-toastr.min.js @@ -1 +1 @@ -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 f(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 g(a){var c=angular.element("
");return b(c)(a)}var h=m(),i={toastId:r++,scope:d.$new()};return i.iconClass=c.iconClass,c.optionsOverride&&(h=angular.extend(h,c.optionsOverride),i.iconClass=c.optionsOverride.iconClass||i.iconClass),f(i,c,h),i.el=g(i.scope),s.push(i),n(h).then(function(){a.enter(i.el,q,null,function(){i.scope.init()})}),i}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 +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(); }); });