/** * angular-strap * @version v2.3.5 - 2015-10-29 * @link http://mgcrea.github.io/angular-strap * @author Olivier Louvignes (https://github.com/mgcrea) * @license MIT License, http://www.opensource.org/licenses/MIT */ 'use strict';angular.module('mgcrea.ngStrap.modal',['mgcrea.ngStrap.core','mgcrea.ngStrap.helpers.dimensions']).provider('$modal',function(){var n=this.defaults={animation:'am-fade',backdropAnimation:'am-fade',prefixClass:'modal',prefixEvent:'modal',placement:'top',templateUrl:'modal/modal.tpl.html',template:'',contentTemplate:!1,container:!1,element:null,backdrop:!0,keyboard:!0,html:!1,show:!0};this.$get=['$window','$rootScope','$bsCompiler','$animate','$timeout','$sce','dimensions',function(e,t,o,i,a,r,l){function s(e){function a(){y.$emit(k.prefixEvent+'.show',b)}function l(){y.$emit(k.prefixEvent+'.hide',b),p.removeClass(k.prefixClass+'-open'),k.animation&&p.removeClass(k.prefixClass+'-with-'+k.animation)}function s(){k.backdrop&&(S.on('click',g),A.on('click',g),A.on('wheel',w))}function m(){k.backdrop&&(S.off('click',g),A.off('click',g),A.off('wheel',w))}function $(){k.keyboard&&S.on('keyup',b.$onKeyUp)}function h(){k.keyboard&&S.off('keyup',b.$onKeyUp)}function g(n){n.target===n.currentTarget&&('static'===k.backdrop?b.focus():b.hide())}function w(n){n.preventDefault()}function v(){b.$isShown&&null!==S&&(m(),h()),E&&(E.$destroy(),E=null),S&&(S.remove(),S=b.$element=null)}var b={},k=b.$options=angular.extend({},n,e),x=b.$promise=o.compile(k),y=b.$scope=k.scope&&k.scope.$new()||t.$new();k.element||k.container||(k.container='body'),b.$id=k.id||k.element&&k.element.attr('id')||'',d(['title','content'],function(n){k[n]&&(y[n]=r.trustAsHtml(k[n]))}),y.$hide=function(){y.$$postDigest(function(){b.hide()})},y.$show=function(){y.$$postDigest(function(){b.show()})},y.$toggle=function(){y.$$postDigest(function(){b.toggle()})},b.$isShown=y.$isShown=!1;var C,S,E,A=angular.element('
');return A.css({position:'fixed',top:'0px',left:'0px',bottom:'0px',right:'0px','z-index':1038}),x.then(function(n){C=n,b.init()}),b.init=function(){k.show&&y.$$postDigest(function(){b.show()})},b.destroy=function(){v(),A&&(A.remove(),A=null),y.$destroy()},b.show=function(){if(!b.$isShown){var n,e;if(angular.isElement(k.container)?(n=k.container,e=k.container[0].lastChild?angular.element(k.container[0].lastChild):null):k.container?(n=u(k.container),e=n[0]&&n[0].lastChild?angular.element(n[0].lastChild):null):(n=null,e=k.element),S&&v(),E=b.$scope.$new(),S=b.$element=C.link(E,function(n,e){}),!y.$emit(k.prefixEvent+'.show.before',b).defaultPrevented){S.css({display:'block'}).addClass(k.placement),k.animation&&(k.backdrop&&A.addClass(k.backdropAnimation),S.addClass(k.animation)),k.backdrop&&i.enter(A,p,null),angular.version.minor<=2?i.enter(S,n,e,a):i.enter(S,n,e).then(a),b.$isShown=y.$isShown=!0,c(y);var t=S[0];f(function(){t.focus()}),p.addClass(k.prefixClass+'-open'),k.animation&&p.addClass(k.prefixClass+'-with-'+k.animation),s(),$()}}},b.hide=function(){b.$isShown&&(y.$emit(k.prefixEvent+'.hide.before',b).defaultPrevented||(angular.version.minor<=2?i.leave(S,l):i.leave(S).then(l),k.backdrop&&i.leave(A),b.$isShown=y.$isShown=!1,c(y),m(),h()))},b.toggle=function(){b.$isShown?b.hide():b.show()},b.focus=function(){S[0].focus()},b.$onKeyUp=function(n){27===n.which&&b.$isShown&&(b.hide(),n.stopPropagation())},b}function c(n){n.$$phase||n.$root&&n.$root.$$phase||n.$digest()}function u(n,e){return angular.element((e||document).querySelectorAll(n))}var d=angular.forEach,f=(String.prototype.trim,e.requestAnimationFrame||e.setTimeout),p=angular.element(e.document.body);return s}]}).directive('bsModal',['$window','$sce','$modal',function(n,e,t){return{restrict:'EAC',scope:!0,link:function(n,o,i,a){var r={scope:n,element:o,show:!1};angular.forEach(['template','templateUrl','controller','controllerAs','contentTemplate','placement','backdrop','keyboard','html','container','animation','backdropAnimation','id','prefixEvent','prefixClass'],function(n){angular.isDefined(i[n])&&(r[n]=i[n])});var l=/^(false|0|)$/i;angular.forEach(['backdrop','keyboard','html','container'],function(n){angular.isDefined(i[n])&&l.test(i[n])&&(r[n]=!1)}),angular.forEach(['title','content'],function(t){i[t]&&i.$observe(t,function(o,i){n[t]=e.trustAsHtml(o)})}),i.bsModal&&n.$watch(i.bsModal,function(e,t){angular.isObject(e)?angular.extend(n,e):n.content=e},!0);var s=t(r);o.on(i.trigger||'click',s.toggle),n.$on('$destroy',function(){s&&s.destroy(),r=null,s=null})}}}]); //# sourceMappingURL=modal.min.js.map