/*! * AngularJS Material Design * https://github.com/angular/material * @license MIT * v1.1.18-master-97a1616 */ !function(e,g,A){"use strict";function t(o,t,i,a,l,r,e,n,s){var d,u,c=l.prefixer(),m=this;this.nestLevel=parseInt(t.mdNestLevel,10)||0,this.init=function(e,t){t=t||{},d=e,(u=i[0].querySelector(c.buildSelector(["ng-click","ng-mouseenter"]))).setAttribute("aria-expanded","false"),this.isInMenuBar=t.isInMenuBar,this.nestedMenus=l.nodesToArray(d[0].querySelectorAll(".md-nested-menu")),d.on("$mdInterimElementRemove",function(){m.isOpen=!1,l.nextTick(function(){m.onIsOpenChanged(m.isOpen)})}),l.nextTick(function(){m.onIsOpenChanged(m.isOpen)});var n="menu_container_"+l.nextUid();d.attr("id",n),g.element(u).attr({"aria-owns":n,"aria-haspopup":"true"}),a.$on("$destroy",g.bind(this,function(){this.disableHoverListener(),o.destroy()})),d.on("$destroy",function(){o.destroy()})};var f,p,h=[];this.enableHoverListener=function(){h.push(e.$on("$mdMenuOpen",function(e,t){d[0].contains(t[0])&&(m.currentlyOpenMenu=t.controller("mdMenu"),m.isAlreadyOpening=!1,m.currentlyOpenMenu.registerContainerProxy(m.triggerContainerProxy.bind(m)))})),h.push(e.$on("$mdMenuClose",function(e,t){d[0].contains(t[0])&&(m.currentlyOpenMenu=A)})),(p=g.element(l.nodesToArray(d[0].children[0].children))).on("mouseenter",m.handleMenuItemHover),p.on("mouseleave",m.handleMenuItemMouseLeave)},this.disableHoverListener=function(){for(;h.length;)h.shift()();p&&p.off("mouseenter",m.handleMenuItemHover),p&&p.off("mouseleave",m.handleMenuItemMouseLeave)},this.handleMenuItemHover=function(e){if(!m.isAlreadyOpening){var t=e.target.querySelector("md-menu")||l.getClosest(e.target,"MD-MENU");f=r(function(){if(t=t&&g.element(t).controller("mdMenu"),m.currentlyOpenMenu&&m.currentlyOpenMenu!=t){var e=m.nestLevel+1;m.currentlyOpenMenu.close(!0,{closeTo:e}),m.isAlreadyOpening=!!t,t&&t.open()}else t&&!t.isOpen&&t.open&&(m.isAlreadyOpening=!!t,t&&t.open())},t?100:250);var n=e.currentTarget.querySelector(".md-button:not([disabled])");n&&n.focus()}},this.handleMenuItemMouseLeave=function(){f&&(r.cancel(f),f=A)},this.open=function(e){e&&e.stopPropagation(),e&&e.preventDefault(),m.isOpen||(m.enableHoverListener(),m.isOpen=!0,l.nextTick(function(){m.onIsOpenChanged(m.isOpen)}),(u=u||(e?e.target:i[0])).setAttribute("aria-expanded","true"),a.$emit("$mdMenuOpen",i),o.show({scope:a,mdMenuCtrl:m,nestLevel:m.nestLevel,element:d,target:u,preserveElement:!0,parent:"body"}).finally(function(){u.setAttribute("aria-expanded","false"),m.disableHoverListener()}))},this.onIsOpenChanged=function(e){e?(d.attr("aria-hidden","false"),i[0].classList.add("md-open"),g.forEach(m.nestedMenus,function(e){e.classList.remove("md-open")})):(d.attr("aria-hidden","true"),i[0].classList.remove("md-open")),a.$mdMenuIsOpen=m.isOpen},this.focusMenuContainer=function(){var e=d[0].querySelector(c.buildSelector(["md-menu-focus-target","md-autofocus"]));(e=e||d[0].querySelector(".md-button:not([disabled])")).focus()},this.registerContainerProxy=function(e){this.containerProxy=e},this.triggerContainerProxy=function(e){this.containerProxy&&this.containerProxy(e)},this.destroy=function(){return m.isOpen?o.destroy():n.when(!1)},this.close=function(e,t){if(m.isOpen){m.isOpen=!1,l.nextTick(function(){m.onIsOpenChanged(m.isOpen)});var n=g.extend({},t,{skipFocus:e});if(a.$emit("$mdMenuClose",i,n),o.hide(null,t),!e){var r=m.restoreFocusTo||i.find("button")[0];r instanceof g.element&&(r=r[0]),r&&r.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 or ")},a.$mdMenu={open:this.open,close:this.close},a.$mdOpenMenu=g.bind(this,function(){return s.warn("mdMenu: The $mdOpenMenu method is deprecated. Please use `$mdMenu.open`."),this.open.apply(this,arguments)})}function n(a){var l="Invalid HTML for md-menu: ";return{restrict:"E",require:["mdMenu","?^mdMenuBar"],controller:"mdMenuCtrl",scope:!0,compile:function(e){e.addClass("md-menu");var t=e.children()[0],n=a.prefixer();n.hasAttribute(t,"ng-click")||(t=t.querySelector(n.buildSelector(["ng-click","ng-mouseenter"]))||t);var r="MD-BUTTON"===t.nodeName||"BUTTON"===t.nodeName;t&&r&&!t.hasAttribute("type")&&t.setAttribute("type","button");if(!t)throw Error(l+"Expected the menu to have a trigger element.");if(2!==e.children().length)throw Error(l+"Expected two children elements. The second element must have a `md-menu-content` element.");t&&t.setAttribute("aria-haspopup","true");var o=e[0].querySelectorAll("md-menu"),i=parseInt(e[0].getAttribute("md-nest-level"),10)||0;o&&g.forEach(a.nodesToArray(o),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)});return s}};function s(e,t,n,r){var o=r[0],i=!!r[1],a=g.element('
'),l=t.children()[1];t.addClass("_md"),l.hasAttribute("role")||l.setAttribute("role","menu"),a.append(l),t.on("$destroy",function(){a.remove()}),t.append(a),a[0].style.display="none",o.init(a,{isInMenuBar:i})}}function r(e){t.$inject=["$mdUtil","$mdTheming","$mdConstant","$document","$window","$q","$$rAF","$animateCss","$animate","$log"];var w=8;return e("$mdMenu").setDefaults({methods:["target"],options:t});function t(E,e,s,k,O,r,o,i,d,u){var $=E.prefixer(),c=E.dom.animator;return{parent:"body",onShow:function(a,n,l){(function(){if(!l.target)throw Error("$mdMenu.show() expected a target to animate from in options.target");g.extend(l,{alreadyOpen:!1,isRemoved:!1,target:g.element(l.target),parent:g.element(l.parent),menuContentEl:g.element(n[0].querySelector("md-menu-content"))})})(),l.menuContentEl[0]?e.inherit(l.menuContentEl,l.target):u.warn("$mdMenu: Menu elements should always contain a `md-menu-content` element,otherwise interactivity features will not work properly.",n);return l.cleanupResizing=function(){var e=function(t,n){return o.throttle(function(){if(!l.isRemoved){var e=p(t,n);t.css(c.toCss(e))}})}(n,l);return O.addEventListener("resize",e),O.addEventListener("orientationchange",e),function(){O.removeEventListener("resize",e),O.removeEventListener("orientationchange",e)}}(),l.hideBackdrop=function(e,t,n){if(n.nestLevel)return g.noop;n.disableParentScroll&&!E.getClosest(n.target,"MD-DIALOG")?n.restoreScroll=E.disableScrollAround(n.element,n.parent):n.disableParentScroll=!1;n.hasBackdrop&&(n.backdrop=E.createBackdrop(e,"md-menu-backdrop md-click-catcher"),d.enter(n.backdrop,k[0].body));return function(){n.backdrop&&n.backdrop.remove(),n.disableParentScroll&&n.restoreScroll()}}(a,0,l),function(){return l.parent.append(n),n[0].style.display="",r(function(e){var t=p(n,l);n.removeClass("md-leave"),i(n,{addClass:"md-active",from:c.toCss(t),to:c.toCss({transform:""})}).start().then(e)})}().then(function(e){return l.alreadyOpen=!0,l.cleanupInteraction=function(){if(!l.menuContentEl[0])return g.noop;l.menuContentEl.on("keydown",o),l.menuContentEl[0].addEventListener("click",i,!0);var e=l.menuContentEl[0].querySelector($.buildSelector(["md-menu-focus-target","md-autofocus"]));if(!e)for(var t=l.menuContentEl[0].children.length,n=0;n