blob: a3dedc51eeb4a392ee98928770eab353cce11b00 [file] [log] [blame]
/*!
* Angular Material Design
* https://github.com/angular/material
* @license MIT
* v1.0.0-master-19c11fd
*/
function SidenavService(e,n){return function(o){function t(){return e.when(o).then(function(e){return c=e,e})}var r,i="SideNav '"+o+"' is not available!",c=e.get(o);return c||e.notFoundError(o),r={isOpen:function(){return c&&c.isOpen()},isLockedOpen:function(){return c&&c.isLockedOpen()},toggle:function(){return c?c.toggle():n.reject(i)},open:function(){return c?c.open():n.reject(i)},close:function(){return c?c.close():n.reject(i)},then:function(e){var o=c?n.when(c):t();return o.then(e||angular.noop)}}}}function SidenavFocusDirective(){return{restrict:"A",require:"^mdSidenav",link:function(e,n,o,t){}}}function SidenavDirective(e,n,o,t,r,i,c,a,d,s){function u(i,u,l,m){function p(e,n){i.isLockedOpen=e,e===n?u.toggleClass("md-locked-open",!!e):r[e?"addClass":"removeClass"](u,"md-locked-open"),y.toggleClass("md-locked-open",!!e)}function v(e){var o=n.findFocusTarget(u)||n.findFocusTarget(u,"[md-sidenav-focus]")||u,t=u.parent();return t[e?"on":"off"]("keydown",$),y[e?"on":"off"]("click",O),e&&(k=s[0].activeElement),f(e),C=d.all([e?r.enter(y,t):r.leave(y),r[e?"removeClass":"addClass"](u,"md-closed")]).then(function(){i.isOpen&&o&&o.focus()})}function f(e){var n=u.parent();e&&!S?(S=n.css("overflow"),n.css("overflow","hidden")):angular.isDefined(S)&&(n.css("overflow",S),S=void 0)}function g(e){return i.isOpen==e?d.when(!0):d(function(o){i.isOpen=e,n.nextTick(function(){C.then(function(e){i.isOpen||(k&&k.focus(),k=null),o(e)})})})}function $(e){var n=e.keyCode===o.KEY_CODE.ESCAPE;return n?O(e):d.when(!0)}function O(e){return e.preventDefault(),m.close()}var S,k=null,C=d.when(!0),h=c(l.mdIsLockedOpen),w=function(){return h(i.$parent,{$media:function(n){return a.warn("$media is deprecated for is-locked-open. Use $mdMedia instead."),e(n)},$mdMedia:e})},y=n.createBackdrop(i,"md-sidenav-backdrop md-opaque ng-enter");t.inherit(y,u),u.on("$destroy",function(){y.remove(),m.destroy()}),i.$on("$destroy",function(){y.remove()}),i.$watch(w,p),i.$watch("isOpen",v),m.$toggleOpen=g}return{restrict:"E",scope:{isOpen:"=?mdIsOpen"},controller:"$mdSidenavController",compile:function(e){return e.addClass("md-closed"),e.attr("tabIndex","-1"),u}}}function SidenavController(e,n,o,t,r){var i=this;i.isOpen=function(){return!!e.isOpen},i.isLockedOpen=function(){return!!e.isLockedOpen},i.open=function(){return i.$toggleOpen(!0)},i.close=function(){return i.$toggleOpen(!1)},i.toggle=function(){return i.$toggleOpen(!e.isOpen)},i.$toggleOpen=function(n){return r.when(e.isOpen=n)},i.destroy=t.register(i,o.mdComponentId)}goog.provide("ng.material.components.sidenav"),goog.require("ng.material.components.backdrop"),goog.require("ng.material.core"),angular.module("material.components.sidenav",["material.core","material.components.backdrop"]).factory("$mdSidenav",SidenavService).directive("mdSidenav",SidenavDirective).directive("mdSidenavFocus",SidenavFocusDirective).controller("$mdSidenavController",SidenavController),SidenavService.$inject=["$mdComponentRegistry","$q"],SidenavDirective.$inject=["$mdMedia","$mdUtil","$mdConstant","$mdTheming","$animate","$compile","$parse","$log","$q","$document"],SidenavController.$inject=["$scope","$element","$attrs","$mdComponentRegistry","$q"],ng.material.components.sidenav=angular.module("material.components.sidenav");