modal.min.js 5.3 KB

12345678910
  1. /**
  2. * angular-strap
  3. * @version v2.3.9 - 2016-06-10
  4. * @link http://mgcrea.github.io/angular-strap
  5. * @author Olivier Louvignes <olivier@mg-crea.com> (https://github.com/mgcrea)
  6. * @license MIT License, http://www.opensource.org/licenses/MIT
  7. */
  8. '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',customClass:'',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,size:null};this.$get=['$window','$rootScope','$bsCompiler','$animate','$timeout','$sce','dimensions',function(e,o,t,a,i,l,s){function r(e){function i(){D.$emit(y.prefixEvent+'.show',x),angular.isDefined(y.onShow)&&angular.isFunction(y.onShow)&&y.onShow(x)}function s(){D.$emit(y.prefixEvent+'.hide',x),angular.isDefined(y.onHide)&&angular.isFunction(y.onHide)&&y.onHide(x),m.removeClass(y.prefixClass+'-open'),y.animation&&m.removeClass(y.prefixClass+'-with-'+y.animation)}function r(){y.backdrop&&(H.on('click',C),z.on('click',C),z.on('wheel',k))}function w(){y.backdrop&&(H.off('click',C),z.off('click',C),z.off('wheel',k))}function v(){y.keyboard&&H.on('keyup',x.$onKeyUp)}function b(){y.keyboard&&H.off('keyup',x.$onKeyUp)}function C(n){n.target===n.currentTarget&&('static'===y.backdrop?x.focus():x.hide())}function k(n){n.preventDefault()}function S(){x.$isShown&&null!==H&&(w(),b()),B&&(B.$destroy(),B=null),H&&(H.remove(),H=x.$element=null)}var x={},y=x.$options=angular.extend({},n,e),E=x.$promise=t.compile(y),D=x.$scope=y.scope&&y.scope.$new()||o.$new();y.element||y.container||(y.container='body'),x.$id=y.id||y.element&&y.element.attr('id')||'',d(['title','content'],function(n){y[n]&&(D[n]=l.trustAsHtml(y[n]))}),D.$hide=function(){D.$$postDigest(function(){x.hide()})},D.$show=function(){D.$$postDigest(function(){x.show()})},D.$toggle=function(){D.$$postDigest(function(){x.toggle()})},x.$isShown=D.$isShown=!1;var A,H,B,z=angular.element('<div class="'+y.prefixClass+'-backdrop"/>');return z.css({position:'fixed',top:'0px',left:'0px',bottom:'0px',right:'0px'}),E.then(function(n){A=n,x.init()}),x.init=function(){y.show&&D.$$postDigest(function(){x.show()})},x.destroy=function(){S(),z&&(z.remove(),z=null),D.$destroy()},x.show=function(){if(!x.$isShown){var n,e;if(angular.isElement(y.container)?(n=y.container,e=y.container[0].lastChild?angular.element(y.container[0].lastChild):null):y.container?(n=u(y.container),e=n[0]&&n[0].lastChild?angular.element(n[0].lastChild):null):(n=null,e=y.element),H&&S(),B=x.$scope.$new(),H=x.$element=A.link(B,function(n,e){}),y.backdrop&&(H.css({'z-index':h+20*p}),z.css({'z-index':$+20*p}),p++),!D.$emit(y.prefixEvent+'.show.before',x).defaultPrevented){angular.isDefined(y.onBeforeShow)&&angular.isFunction(y.onBeforeShow)&&y.onBeforeShow(x),H.css({display:'block'}).addClass(y.placement),y.customClass&&H.addClass(y.customClass),y.size&&g[y.size]&&angular.element(u('.modal-dialog',H[0])).addClass(g[y.size]),y.animation&&(y.backdrop&&z.addClass(y.backdropAnimation),H.addClass(y.animation)),y.backdrop&&a.enter(z,m,null),angular.version.minor<=2?a.enter(H,n,e,i):a.enter(H,n,e).then(i),x.$isShown=D.$isShown=!0,c(D);var o=H[0];f(function(){o.focus()}),m.addClass(y.prefixClass+'-open'),y.animation&&m.addClass(y.prefixClass+'-with-'+y.animation),r(),v()}}},x.hide=function(){x.$isShown&&(D.$emit(y.prefixEvent+'.hide.before',x).defaultPrevented||(angular.isDefined(y.onBeforeHide)&&angular.isFunction(y.onBeforeHide)&&y.onBeforeHide(x),angular.version.minor<=2?a.leave(H,s):a.leave(H).then(s),y.backdrop&&(p--,a.leave(z)),x.$isShown=D.$isShown=!1,c(D),w(),b()))},x.toggle=function(){x.$isShown?x.hide():x.show()},x.focus=function(){H[0].focus()},x.$onKeyUp=function(n){27===n.which&&x.$isShown&&(x.hide(),n.stopPropagation())},x}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=e.requestAnimationFrame||e.setTimeout,m=angular.element(e.document.body),p=0,h=1050,$=1040,g={lg:'modal-lg',sm:'modal-sm'};return r}]}).directive('bsModal',['$window','$sce','$parse','$modal',function(n,e,o,t){return{restrict:'EAC',scope:!0,link:function(n,o,a,i){var l={scope:n,element:o,show:!1};angular.forEach(['template','templateUrl','controller','controllerAs','contentTemplate','placement','backdrop','keyboard','html','container','animation','backdropAnimation','id','prefixEvent','prefixClass','customClass','modalClass','size'],function(n){angular.isDefined(a[n])&&(l[n]=a[n])}),l.modalClass&&(l.customClass=l.modalClass);var s=/^(false|0|)$/i;angular.forEach(['backdrop','keyboard','html','container'],function(n){angular.isDefined(a[n])&&s.test(a[n])&&(l[n]=!1)}),angular.forEach(['onBeforeShow','onShow','onBeforeHide','onHide'],function(e){var o='bs'+e.charAt(0).toUpperCase()+e.slice(1);angular.isDefined(a[o])&&(l[e]=n.$eval(a[o]))}),angular.forEach(['title','content'],function(o){a[o]&&a.$observe(o,function(t,a){n[o]=e.trustAsHtml(t)})}),a.bsModal&&n.$watch(a.bsModal,function(e,o){angular.isObject(e)?angular.extend(n,e):n.content=e},!0);var r=t(l);o.on(a.trigger||'click',r.toggle),n.$on('$destroy',function(){r&&r.destroy(),l=null,r=null})}}}]);
  9. //# sourceMappingURL=modal.min.js.map