/*!
 * Angular Material Design
 * https://github.com/angular/material
 * @license MIT
 * v1.0.5-master-f171fd2
 */
function MenuController(e,t,n,r,o,a,i,l){var s,u,d=this;this.nestLevel=parseInt(t.mdNestLevel,10)||0,this.init=function(t,a){a=a||{},s=t,u=n[0].querySelector("[ng-click],[ng-mouseenter]"),u.setAttribute("aria-expanded","false"),this.isInMenuBar=a.isInMenuBar,this.nestedMenus=o.nodesToArray(s[0].querySelectorAll(".md-nested-menu")),s.on("$mdInterimElementRemove",function(){d.isOpen=!1});var i="menu_container_"+o.nextUid();s.attr("id",i),angular.element(u).attr({"aria-owns":i,"aria-haspopup":"true"}),r.$on("$destroy",this.disableHoverListener),s.on("$destroy",function(){e.destroy()})};var c,m,f=[];this.enableHoverListener=function(){f.push(i.$on("$mdMenuOpen",function(e,t){s[0].contains(t[0])&&(d.currentlyOpenMenu=t.controller("mdMenu"),d.isAlreadyOpening=!1,d.currentlyOpenMenu.registerContainerProxy(d.triggerContainerProxy.bind(d)))})),f.push(i.$on("$mdMenuClose",function(e,t){s[0].contains(t[0])&&(d.currentlyOpenMenu=void 0)})),m=angular.element(o.nodesToArray(s[0].children[0].children)),m.on("mouseenter",d.handleMenuItemHover),m.on("mouseleave",d.handleMenuItemMouseLeave)},this.disableHoverListener=function(){for(;f.length;)f.shift()();m&&m.off("mouseenter",d.handleMenuItemHover),m&&m.off("mouseleave",d.handleMenuMouseLeave)},this.handleMenuItemHover=function(e){if(!d.isAlreadyOpening){var t=e.target.querySelector("md-menu")||o.getClosest(e.target,"MD-MENU");c=a(function(){if(t&&(t=angular.element(t).controller("mdMenu")),d.currentlyOpenMenu&&d.currentlyOpenMenu!=t){var e=d.nestLevel+1;d.currentlyOpenMenu.close(!0,{closeTo:e})}else t&&!t.isOpen&&t.open&&(d.isAlreadyOpening=!0,t.open())},t?100:250);var n=e.currentTarget.querySelector(".md-button:not([disabled])");n&&n.focus()}},this.handleMenuItemMouseLeave=function(){c&&(a.cancel(c),c=void 0)},this.open=function(t){t&&t.stopPropagation(),t&&t.preventDefault(),d.isOpen||(d.enableHoverListener(),d.isOpen=!0,u=u||(t?t.target:n[0]),u.setAttribute("aria-expanded","true"),r.$emit("$mdMenuOpen",n),e.show({scope:r,mdMenuCtrl:d,nestLevel:d.nestLevel,element:s,target:u,preserveElement:!0,parent:"body"})["finally"](function(){u.setAttribute("aria-expanded","false"),d.disableHoverListener()}))},r.$mdOpenMenu=this.open,r.$watch(function(){return d.isOpen},function(e){e?(s.attr("aria-hidden","false"),n[0].classList.add("_md-open"),angular.forEach(d.nestedMenus,function(e){e.classList.remove("_md-open")})):(s.attr("aria-hidden","true"),n[0].classList.remove("_md-open")),r.$mdMenuIsOpen=d.isOpen}),this.focusMenuContainer=function(){var e=s[0].querySelector("[md-menu-focus-target]");e||(e=s[0].querySelector(".md-button")),e.focus()},this.registerContainerProxy=function(e){this.containerProxy=e},this.triggerContainerProxy=function(e){this.containerProxy&&this.containerProxy(e)},this.destroy=function(){return d.isOpen?e.destroy():l.when(!1)},this.close=function(t,o){if(d.isOpen){d.isOpen=!1;var a=angular.extend({},o,{skipFocus:t});if(r.$emit("$mdMenuClose",n,a),e.hide(null,o),!t){var i=d.restoreFocusTo||n.find("button")[0];i instanceof angular.element&&(i=i[0]),i&&i.focus()}}},this.positionMode=function(){var e=(t.mdPositionMode||"target").split(" ");return 1==e.length&&e.push(e[0]),{left:e[0],top:e[1]}},this.offsets=function(){var e=(t.mdOffset||"0 0").split(" ").map(parseFloat);if(2==e.length)return{left:e[0],top:e[1]};if(1==e.length)return{top:e[0],left:e[0]};throw Error("Invalid offsets specified. Please follow format <x, y> or <n>")}}function MenuDirective(e){function t(t){t.addClass("md-menu");var o=t.children()[0];if(o.hasAttribute("ng-click")||(o=o.querySelector("[ng-click],[ng-mouseenter]")||o),!o||"MD-BUTTON"!=o.nodeName&&"BUTTON"!=o.nodeName||o.hasAttribute("type")||o.setAttribute("type","button"),2!=t.children().length)throw Error(r+"Expected two children elements.");o&&o.setAttribute("aria-haspopup","true");var a=t[0].querySelectorAll("md-menu"),i=parseInt(t[0].getAttribute("md-nest-level"),10)||0;return a&&angular.forEach(e.nodesToArray(a),function(e){e.hasAttribute("md-position-mode")||e.setAttribute("md-position-mode","cascade"),e.classList.add("_md-nested-menu"),e.setAttribute("md-nest-level",i+1)}),n}function n(e,t,n,r){var o=r[0],a=void 0!=r[1],i=angular.element('<div class="_md-open-menu-container md-whiteframe-z2"></div>'),l=t.children()[1];l.hasAttribute("role")||l.setAttribute("role","menu"),i.append(l),t.on("$destroy",function(){i.remove()}),t.append(i),i[0].style.display="none",o.init(i,{isInMenuBar:a})}var r="Invalid HTML for md-menu: ";return{restrict:"E",require:["mdMenu","?^mdMenuBar"],controller:"mdMenuCtrl",scope:!0,compile:t}}function MenuProvider(e){function t(e,t,o,a,i,l,s,u,d){function c(t,n,r){return r.nestLevel?angular.noop:(r.disableParentScroll&&!e.getClosest(r.target,"MD-DIALOG")?r.restoreScroll=e.disableScrollAround(r.element,r.parent):r.disableParentScroll=!1,r.hasBackdrop&&(r.backdrop=e.createBackdrop(t,"_md-menu-backdrop _md-click-catcher"),d.enter(r.backdrop,a[0].body)),function(){r.backdrop&&r.backdrop.remove(),r.disableParentScroll&&r.restoreScroll()})}function m(e,t,n){function r(){return u(t,{addClass:"_md-leave"}).start()}function o(){t.removeClass("_md-active"),g(t,n),n.alreadyOpen=!1}return n.cleanupInteraction(),n.cleanupResizing(),n.hideBackdrop(),n.$destroy===!0?o():r().then(o)}function f(n,r,a){function d(){return a.parent.append(r),r[0].style.display="",l(function(e){var t=v(r,a);r.removeClass("_md-leave"),u(r,{addClass:"_md-active",from:M.toCss(t),to:M.toCss({transform:""})}).start().then(e)})}function m(){if(!a.target)throw Error("$mdMenu.show() expected a target to animate from in options.target");angular.extend(a,{alreadyOpen:!1,isRemoved:!1,target:angular.element(a.target),parent:angular.element(a.parent),menuContentEl:angular.element(r[0].querySelector("md-menu-content"))})}function f(){var e=function(e,t){return s.throttle(function(){if(!a.isRemoved){var n=v(e,t);e.css(M.toCss(n))}})}(r,a);return i.addEventListener("resize",e),i.addEventListener("orientationchange",e),function(){i.removeEventListener("resize",e),i.removeEventListener("orientationchange",e)}}function h(){function t(t){var n;switch(t.keyCode){case o.KEY_CODE.ESCAPE:a.mdMenuCtrl.close(!1,{closeAll:!0}),n=!0;break;case o.KEY_CODE.UP_ARROW:p(t,a.menuContentEl,a,-1)||a.nestLevel||a.mdMenuCtrl.triggerContainerProxy(t),n=!0;break;case o.KEY_CODE.DOWN_ARROW:p(t,a.menuContentEl,a,1)||a.nestLevel||a.mdMenuCtrl.triggerContainerProxy(t),n=!0;break;case o.KEY_CODE.LEFT_ARROW:a.nestLevel?a.mdMenuCtrl.close():a.mdMenuCtrl.triggerContainerProxy(t),n=!0;break;case o.KEY_CODE.RIGHT_ARROW:var r=e.getClosest(t.target,"MD-MENU");r&&r!=a.parent[0]?t.target.click():a.mdMenuCtrl.triggerContainerProxy(t),n=!0}n&&(t.preventDefault(),t.stopImmediatePropagation())}function i(e){e.preventDefault(),e.stopPropagation(),n.$apply(function(){a.mdMenuCtrl.close(!0,{closeAll:!0})})}function l(t){function r(){n.$apply(function(){a.mdMenuCtrl.close(!0,{closeAll:!0})})}function o(e,t){if(!e)return!1;for(var n,r=0;n=t[r];++r)for(var o,a=[n,"data-"+n,"x-"+n],i=0;o=a[i];++i)if(e.hasAttribute(o))return!0;return!1}var i=t.target;do{if(i==a.menuContentEl[0])return;if((o(i,["ng-click","ng-href","ui-sref"])||"BUTTON"==i.nodeName||"MD-BUTTON"==i.nodeName)&&!o(i,["md-prevent-menu-close"])){var l=e.getClosest(i,"MD-MENU");i.hasAttribute("disabled")||l&&l!=a.parent[0]||r();break}}while(i=i.parentNode)}r.addClass("_md-clickable"),a.backdrop&&a.backdrop.on("click",i),a.menuContentEl.on("keydown",t),a.menuContentEl[0].addEventListener("click",l,!0);var s=a.menuContentEl[0].querySelector("[md-menu-focus-target]");if(!s){var u=a.menuContentEl[0].firstElementChild;s=u&&(u.querySelector(".md-button:not([disabled])")||u.firstElementChild)}return s&&s.focus(),function(){r.removeClass("_md-clickable"),a.backdrop&&a.backdrop.off("click",i),a.menuContentEl.off("keydown",t),a.menuContentEl[0].removeEventListener("click",l,!0)}}return m(a),t.inherit(a.menuContentEl,a.target),a.cleanupResizing=f(),a.hideBackdrop=c(n,r,a),d().then(function(e){return a.alreadyOpen=!0,a.cleanupInteraction=h(),e})}function p(t,n,r,o){for(var a,i=e.getClosest(t.target,"MD-MENU-ITEM"),l=e.nodesToArray(n[0].children),s=l.indexOf(i),u=s+o;u>=0&&u<l.length;u+=o){var d=l[u].querySelector(".md-button");if(a=h(d))break}return a}function h(e){return e&&-1!=e.getAttribute("tabindex")?(e.focus(),a[0].activeElement==e):void 0}function g(e,t){t.preserveElement?n(e).style.display="none":n(e).parentNode===n(t.parent)&&n(t.parent).removeChild(n(e))}function v(t,n){function o(e){e.top=Math.max(Math.min(e.top,v.bottom-u.offsetHeight),v.top),e.left=Math.max(Math.min(e.left,v.right-u.offsetWidth),v.left)}function l(){for(var e=0;e<d.children.length;++e)if("none"!=i.getComputedStyle(d.children[e]).display)return d.children[e]}var s,u=t[0],d=t[0].firstElementChild,c=d.getBoundingClientRect(),m=a[0].body,f=m.getBoundingClientRect(),p=i.getComputedStyle(d),h=n.target[0].querySelector("[md-menu-origin]")||n.target[0],g=h.getBoundingClientRect(),v={left:f.left+r,top:Math.max(f.top,0)+r,bottom:Math.max(f.bottom,Math.max(f.top,0)+f.height)-r,right:f.right-r},M={top:0,left:0,right:0,bottom:0},b={top:0,left:0,right:0,bottom:0},y=n.mdMenuCtrl.positionMode();"target"!=y.top&&"target"!=y.left&&"target-right"!=y.left||(s=l(),s&&(s=s.firstElementChild||s,s=s.querySelector("[md-menu-align-target]")||s,M=s.getBoundingClientRect(),b={top:parseFloat(u.style.top||0),left:parseFloat(u.style.left||0)}));var C={},E="top ";switch(y.top){case"target":C.top=b.top+g.top-M.top;break;case"cascade":C.top=g.top-parseFloat(p.paddingTop)-h.style.top;break;case"bottom":C.top=g.top+g.height;break;default:throw new Error('Invalid target mode "'+y.top+'" specified for md-menu on Y axis.')}var k="rtl"==e.bidi();switch(y.left){case"target":C.left=b.left+g.left-M.left,E+=k?"right":"left";break;case"target-left":C.left=g.left,E+="left";break;case"target-right":C.left=g.right-c.width+(c.right-M.right),E+="right";break;case"cascade":var $=k?g.left-c.width<v.left:g.right+c.width<v.right;C.left=$?g.right-h.style.left:g.left-h.style.left-c.width,E+=$?"left":"right";break;case"left":k?(C.left=g.right-c.width,E+="right"):(C.left=g.left,E+="left");break;default:throw new Error('Invalid target mode "'+y.left+'" specified for md-menu on X axis.')}var O=n.mdMenuCtrl.offsets();C.top+=O.top,C.left+=O.left,o(C);var A=Math.round(100*Math.min(g.width/u.offsetWidth,1))/100,w=Math.round(100*Math.min(g.height/u.offsetHeight,1))/100;return{top:Math.round(C.top),left:Math.round(C.left),transform:n.alreadyOpen?void 0:e.supplant("scale({0},{1})",[A,w]),transformOrigin:E}}var M=e.dom.animator;return{parent:"body",onShow:f,onRemove:m,hasBackdrop:!0,disableParentScroll:!0,skipCompile:!0,preserveScope:!0,skipHide:!0,themable:!0}}function n(e){return e instanceof angular.element&&(e=e[0]),e}var r=8;return t.$inject=["$mdUtil","$mdTheming","$mdConstant","$document","$window","$q","$$rAF","$animateCss","$animate"],e("$mdMenu").setDefaults({methods:["target"],options:t})}goog.provide("ng.material.components.menu"),goog.require("ng.material.components.backdrop"),goog.require("ng.material.core"),angular.module("material.components.menu",["material.core","material.components.backdrop"]),angular.module("material.components.menu").controller("mdMenuCtrl",MenuController),MenuController.$inject=["$mdMenu","$attrs","$element","$scope","$mdUtil","$timeout","$rootScope","$q"],angular.module("material.components.menu").directive("mdMenu",MenuDirective),MenuDirective.$inject=["$mdUtil"],angular.module("material.components.menu").provider("$mdMenu",MenuProvider),MenuProvider.$inject=["$$interimElementProvider"],ng.material.components.menu=angular.module("material.components.menu");