2015-08-07 16:37:36 +02:00
/ * !
* Angular Material Design
* https : //github.com/angular/material
* @ license MIT
2016-03-15 07:29:27 +01:00
* v1 . 0.6 - master - a653122
2015-08-07 16:37:36 +02:00
* /
2016-03-11 08:04:05 +01:00
! function ( e , t , n ) { "use strict" ; ! function ( ) { t . module ( "ngMaterial" , [ "ng" , "ngAnimate" , "ngAria" , "material.core" , "material.core.gestures" , "material.core.layout" , "material.core.theming.palette" , "material.core.theming" , "material.core.animate" , "material.components.autocomplete" , "material.components.backdrop" , "material.components.bottomSheet" , "material.components.button" , "material.components.card" , "material.components.checkbox" , "material.components.chips" , "material.components.content" , "material.components.datepicker" , "material.components.dialog" , "material.components.divider" , "material.components.fabActions" , "material.components.fabShared" , "material.components.fabSpeedDial" , "material.components.fabToolbar" , "material.components.fabTrigger" , "material.components.gridList" , "material.components.icon" , "material.components.input" , "material.components.list" , "material.components.menu" , "material.components.menuBar" , "material.components.progressCircular" , "material.components.progressLinear" , "material.components.radioButton" , "material.components.select" , "material.components.showHide" , "material.components.sidenav" , "material.components.slider" , "material.components.sticky" , "material.components.subheader" , "material.components.swipe" , "material.components.switch" , "material.components.tabs" , "material.components.toast" , "material.components.toolbar" , "material.components.tooltip" , "material.components.virtualRepeat" , "material.components.whiteframe" ] ) } ( ) , function ( ) { function e ( e , t ) { if ( t . has ( "$swipe" ) ) { var n = "You are using the ngTouch module. \nAngular Material already has mobile click, tap, and swipe support... \nngTouch is not supported with Angular Material!" ; e . warn ( n ) } } function n ( e , t ) { e . decorator ( "$$rAF" , [ "$delegate" , o ] ) , t . theme ( "default" ) . primaryPalette ( "indigo" ) . accentPalette ( "pink" ) . warnPalette ( "deep-orange" ) . backgroundPalette ( "grey" ) } function o ( e ) { return e . throttle = function ( t ) { var n , o , r , i ; return function ( ) { n = arguments , i = this , r = t , o || ( o = ! 0 , e ( function ( ) { r . apply ( i , Array . prototype . slice . call ( n ) ) , o = ! 1 } ) ) } } , e } t . module ( "material.core" , [ "ngAnimate" , "material.core.animate" , "material.core.layout" , "material.core.gestures" , "material.core.theming" ] ) . config ( n ) . run ( e ) , e . $inject = [ "$log" , "$injector" ] , n . $inject = [ "$provide" , "$mdThemingProvider" ] } ( ) , function ( ) { function e ( ) { return { restrict : "A" , link : n } } function n ( e , t , n ) { var o = n . mdAutoFocus || n . mdAutofocus || n . mdSidenavFocus ; e . $watch ( o , function ( e ) { t . toggleClass ( "_md-autofocus" , e ) } ) } t . module ( "material.core" ) . directive ( "mdAutofocus" , e ) . directive ( "mdAutoFocus" , e ) . directive ( "mdSidenavFocus" , e ) } ( ) , function ( ) { function e ( e ) { function t ( e ) { return n ? "webkit" + e . charAt ( 0 ) . toUpperCase ( ) + e . substring ( 1 ) : e } var n = /webkit/i . test ( e . vendorPrefix ) ; return { KEY _CODE : { COMMA : 188 , SEMICOLON : 186 , ENTER : 13 , ESCAPE : 27 , SPACE : 32 , PAGE _UP : 33 , PAGE _DOWN : 34 , END : 35 , HOME : 36 , LEFT _ARROW : 37 , UP _ARROW : 38 , RIGHT _ARROW : 39 , DOWN _ARROW : 40 , TAB : 9 , BACKSPACE : 8 , DELETE : 46 } , CSS : { TRANSITIONEND : "transitionend" + ( n ? " webkitTransitionEnd" : "" ) , ANIMATIONEND : "animationend" + ( n ? " webkitAnimationEnd" : "" ) , TRANSFORM : t ( "transform" ) , TRANSFORM _ORIGIN : t ( "transformOrigin" ) , TRANSITION : t ( "transition" ) , TRANSITION _DURATION : t ( "transitionDuration" ) , ANIMATION _PLAY _STATE : t ( "animationPlayState" ) , ANIMATION _DURATION : t ( "animationDuration" ) , ANIMATION _NAME : t ( "animationName" ) , ANIMATION _TIMING : t ( "animationTimingFunction" ) , ANIMATION _DIRECTION : t ( "animationDirection" ) } , MEDIA : { xs : "(max-width: 599px)" , "gt-xs" : "(min-width: 600px)" , sm : "(min-width: 600px) and (max-width: 959px)" , "gt-sm" : "(min-width: 960px)" , md : "(min-width: 960px) and (max-width: 1279px)" , "gt-md" : "(min-width: 1280px)" , lg : "(min-width: 1280px) and (max-width: 1919px)" , "gt-lg" : "(min-width: 1920px)" , xl : "(min-width: 1920px)" , print : "print" } , MEDIA _PRIORITY : [ "xl" , "gt-lg" , "lg" , "gt-md" , "md" , "gt-sm" , "sm" , "gt-xs" , "xs" , "print" ] } } t . module ( "material.core" ) . factory ( "$mdConstant" , e ) , e . $inject = [ "$sniffer" ] } ( ) , function ( ) { function e ( e , n ) { function o ( ) { return [ ] . concat ( E ) } function r ( ) { return E . length } function i ( e ) { return E . length && e > - 1 && e < E . length } function a ( e ) { return e ? i ( u ( e ) + 1 ) : ! 1 } function d ( e ) { return e ? i ( u ( e ) - 1 ) : ! 1 } function c ( e ) { return i ( e ) ? E [ e ] : null } function s ( e , t ) { return E . fi
2016-03-15 07:29:27 +01:00
return i } , get : function ( e ) { if ( ! o ( e ) ) return null ; var t , n , r ; for ( t = 0 , n = i . length ; n > t ; t ++ ) if ( r = i [ t ] , r . $$mdHandle === e ) return r ; return null } , register : function ( e , n ) { function o ( ) { var t = i . indexOf ( e ) ; - 1 !== t && i . splice ( t , 1 ) } function r ( ) { var t = a [ n ] ; t && ( t . resolve ( e ) , delete a [ n ] ) } return n ? ( e . $$mdHandle = n , i . push ( e ) , r ( ) , o ) : t . noop } , when : function ( e ) { if ( o ( e ) ) { var t = n . defer ( ) , i = r . get ( e ) ; return i ? t . resolve ( i ) : a [ e ] = t , t . promise } return n . reject ( "Invalid `md-component-id` value." ) } } } t . module ( "material.core" ) . factory ( "$mdComponentRegistry" , e ) , e . $inject = [ "$log" , "$q" ] } ( ) , function ( ) { ! function ( ) { function e ( e ) { function n ( e ) { return e . hasClass ( "md-icon-button" ) ? { isMenuItem : e . hasClass ( "md-menu-item" ) , fitRipple : ! 0 , center : ! 0 } : { isMenuItem : e . hasClass ( "md-menu-item" ) , dimBackground : ! 0 } } return { attach : function ( o , r , i ) { return i = t . extend ( n ( r ) , i ) , e . attach ( o , r , i ) } } } t . module ( "material.core" ) . factory ( "$mdButtonInkRipple" , e ) , e . $inject = [ "$mdInkRipple" ] } ( ) } ( ) , function ( ) { ! function ( ) { function e ( e ) { function n ( n , o , r ) { return e . attach ( n , o , t . extend ( { center : ! 0 , dimBackground : ! 1 , fitRipple : ! 0 } , r ) ) } return { attach : n } } t . module ( "material.core" ) . factory ( "$mdCheckboxInkRipple" , e ) , e . $inject = [ "$mdInkRipple" ] } ( ) } ( ) , function ( ) { ! function ( ) { function e ( e ) { function n ( n , o , r ) { return e . attach ( n , o , t . extend ( { center : ! 1 , dimBackground : ! 0 , outline : ! 1 , rippleSize : "full" } , r ) ) } return { attach : n } } t . module ( "material.core" ) . factory ( "$mdListInkRipple" , e ) , e . $inject = [ "$mdInkRipple" ] } ( ) } ( ) , function ( ) { function e ( e , n ) { return { controller : t . noop , link : function ( t , o , r ) { r . hasOwnProperty ( "mdInkRippleCheckbox" ) ? n . attach ( t , o ) : e . attach ( t , o ) } } } function n ( e ) { function n ( n , r , i ) { return r . controller ( "mdNoInk" ) ? t . noop : e . instantiate ( o , { $scope : n , $element : r , rippleOptions : i } ) } return { attach : n } } function o ( e , n , o , r , i , a ) { this . $window = r , this . $timeout = i , this . $mdUtil = a , this . $scope = e , this . $element = n , this . options = o , this . mousedown = ! 1 , this . ripples = [ ] , this . timeout = null , this . lastRipple = null , a . valueOnUse ( this , "container" , this . createContainer ) , this . $element . addClass ( "md-ink-ripple" ) , ( n . controller ( "mdInkRipple" ) || { } ) . createRipple = t . bind ( this , this . createRipple ) , ( n . controller ( "mdInkRipple" ) || { } ) . setColor = t . bind ( this , this . color ) , this . bindEvents ( ) } function r ( e , n ) { ( e . mousedown || e . lastRipple ) && ( e . mousedown = ! 1 , e . $mdUtil . nextTick ( t . bind ( e , n ) , ! 1 ) ) } function i ( ) { return { controller : t . noop } } t . module ( "material.core" ) . factory ( "$mdInkRipple" , n ) . directive ( "mdInkRipple" , e ) . directive ( "mdNoInk" , i ) . directive ( "mdNoBar" , i ) . directive ( "mdNoStretch" , i ) ; var a = 450 ; e . $inject = [ "$mdButtonInkRipple" , "$mdCheckboxInkRipple" ] , n . $inject = [ "$injector" ] , o . $inject = [ "$scope" , "$element" , "rippleOptions" , "$window" , "$timeout" , "$mdUtil" ] , o . prototype . color = function ( e ) { function n ( ) { var e = o . options && o . options . colorElement ? o . options . colorElement : [ ] , t = e . length ? e [ 0 ] : o . $element [ 0 ] ; return t ? o . $window . getComputedStyle ( t ) . color : "rgb(0,0,0)" } var o = this ; return t . isDefined ( e ) && ( o . _color = o . _parseColor ( e ) ) , o . _color || o . _parseColor ( o . inkRipple ( ) ) || o . _parseColor ( n ( ) ) } , o . prototype . calculateColor = function ( ) { return this . color ( ) } , o . prototype . _parseColor = function ( e , t ) { function n ( e ) { var t = "#" === e [ 0 ] ? e . substr ( 1 ) : e , n = t . length / 3 , o = t . substr ( 0 , n ) , r = t . substr ( n , n ) , i = t . substr ( 2 * n ) ; return 1 === n && ( o += o , r += r , i += i ) , "rgba(" + parseInt ( o , 16 ) + "," + parseInt ( r , 16 ) + "," + parseInt ( i , 16 ) + ",0.1)" } function o ( e ) { return e . replace ( ")" , ", 0.1)" ) . replace ( "(" , "a(" ) } return t = t || 1 , e ? 0 === e . indexOf ( "rgba" ) ? e . replace ( /\d?\.?\d*\s*\)\s*$/ , ( . 1 * t ) . toString ( ) + ")" ) : 0 === e . indexOf ( "rgb" ) ? o ( e ) : 0 === e . indexOf ( "#" ) ? n ( e ) : void 0 : void 0 } , o . prototype . bindEvents = function ( ) { this . $element . on ( "mousedown" , t . bind ( this , this . handleMousedown ) ) , this . $element . on ( "mouseup touchend" , t . bind ( this , this . handleMouseup ) ) , this . $element . on ( "mouseleave" , t . bind ( this , this . handleMouseup ) ) , this . $element . on ( "touchmove" , t . bind ( this , this . handleTouchmove ) ) } , o . prototype . handleMousedown = function ( e ) { if ( ! this . mousedown ) if ( e . hasOwnProperty ( "originalEvent" ) && ( e = e . originalEvent ) , this . mousedown = ! 0 , this . options . center ) this . createRipple ( this . container . prop ( "clientWidth" ) / 2 , this . container . prop ( "clientWidth" ) / 2 ) ; else if ( e . srcElement !== this . $element [ 0 ] ) { var t = this . $element [ 0 ] . getBoundingClientRect ( ) , n = e . clientX - t . left , o = e . cli
e . $inject = [ "$mdTheming" ] } ( ) , function ( ) { function e ( e , n , o , r , i , a ) { function d ( d , s ) { var l = d . children ( ) ; return s . type = "checkbox" , s . tabindex = s . tabindex || "0" , d . attr ( "role" , s . type ) , d . on ( "click" , function ( e ) { this . hasAttribute ( "disabled" ) && e . stopImmediatePropagation ( ) } ) , l . on ( "focus" , function ( ) { d . focus ( ) } ) , function ( d , s , l , m ) { function u ( e , t , n ) { l [ e ] && d . $watch ( l [ e ] , function ( e ) { n [ e ] && s . attr ( t , n [ e ] ) } ) } function p ( e ) { var t = e . which || e . keyCode ; t !== o . KEY _CODE . SPACE && t !== o . KEY _CODE . ENTER || ( e . preventDefault ( ) , s . hasClass ( "md-focused" ) || s . addClass ( "md-focused" ) , h ( e ) ) } function h ( e ) { s [ 0 ] . hasAttribute ( "disabled" ) || d . $apply ( function ( ) { var t = l . ngChecked ? l . checked : ! m . $viewValue ; m . $setViewValue ( t , e && e . type ) , m . $render ( ) } ) } function f ( ) { m . $viewValue ? s . addClass ( c ) : s . removeClass ( c ) } m = m || i . fakeNgModel ( ) , r ( s ) , l . ngChecked && d . $watch ( d . $eval . bind ( d , l . ngChecked ) , m . $setViewValue . bind ( m ) ) , u ( "ngDisabled" , "tabindex" , { "true" : "-1" , "false" : l . tabindex } ) , n . expectWithText ( s , "aria-label" ) , e . link . pre ( d , { on : t . noop , 0 : { } } , l , [ m ] ) , d . mouseActive = ! 1 , s . on ( "click" , h ) . on ( "keypress" , p ) . on ( "mousedown" , function ( ) { d . mouseActive = ! 0 , a ( function ( ) { d . mouseActive = ! 1 } , 100 ) } ) . on ( "focus" , function ( ) { d . mouseActive === ! 1 && s . addClass ( "md-focused" ) } ) . on ( "blur" , function ( ) { s . removeClass ( "md-focused" ) } ) , m . $render = f } } e = e [ 0 ] ; var c = "md-checked" ; return { restrict : "E" , transclude : ! 0 , require : "?ngModel" , priority : 210 , template : '<div class="_md-container" md-ink-ripple md-ink-ripple-checkbox><div class="_md-icon"></div></div><div ng-transclude class="_md-label"></div>' , compile : d } } t . module ( "material.components.checkbox" , [ "material.core" ] ) . directive ( "mdCheckbox" , e ) , e . $inject = [ "inputDirective" , "$mdAria" , "$mdConstant" , "$mdTheming" , "$mdUtil" , "$timeout" ] } ( ) , function ( ) { t . module ( "material.components.chips" , [ "material.core" , "material.components.autocomplete" ] ) } ( ) , function ( ) { function e ( e ) { function t ( e , t ) { this . $scope = e , this . $element = t } return { restrict : "E" , controller : [ "$scope" , "$element" , t ] , link : function ( t , o , r ) { o [ 0 ] ; e ( o ) , t . $broadcast ( "$mdContentLoaded" , o ) , n ( o [ 0 ] ) } } } function n ( e ) { t . element ( e ) . on ( "$md.pressdown" , function ( t ) { "t" === t . pointer . type && ( t . $materialScrollFixed || ( t . $materialScrollFixed = ! 0 , 0 === e . scrollTop ? e . scrollTop = 1 : e . scrollHeight === e . scrollTop + e . offsetHeight && ( e . scrollTop -= 1 ) ) ) } ) } t . module ( "material.components.content" , [ "material.core" ] ) . directive ( "mdContent" , e ) , e . $inject = [ "$mdTheming" ] } ( ) , function ( ) { ! function ( ) { function e ( ) { return { template : '<table aria-hidden="true" class="md-calendar-day-header"><thead></thead></table><div class="md-calendar-scroll-mask"><md-virtual-repeat-container class="md-calendar-scroll-container" md-offset-size="' + ( r - o ) + '"><table role="grid" tabindex="0" class="md-calendar" aria-readonly="true"><tbody role="rowgroup" md-virtual-repeat="i in ctrl.items" md-calendar-month md-month-offset="$index" class="md-calendar-month" md-start-index="ctrl.getSelectedMonthIndex()" md-item-size="' + o + '"></tbody></table></md-virtual-repeat-container></div>' , scope : { minDate : "=mdMinDate" , maxDate : "=mdMaxDate" , dateFilter : "=mdDateFilter" } , require : [ "ngModel" , "mdCalendar" ] , controller : n , controllerAs : "ctrl" , bindToController : ! 0 , link : function ( e , t , n , o ) { var r = o [ 0 ] , i = o [ 1 ] ; i . configureNgModel ( r ) } } } function n ( e , t , n , o , r , i , a , c , s , l , m ) { if ( a ( e ) , this . items = { length : 2e3 } , this . maxDate && this . minDate ) { var u = c . getMonthDistance ( this . minDate , this . maxDate ) + 1 ; u = Math . max ( u , 1 ) , u += 1 , this . items . length = u } if ( this . $animate = o , this . $q = r , this . $mdInkRipple = l , this . $mdUtil = m , this . keyCode = i . KEY _CODE , this . dateUtil = c , this . dateLocale = s , this . $element = e , this . $scope = n , this . calendarElement = e [ 0 ] . querySelector ( ".md-calendar" ) , this . calendarScroller = e [ 0 ] . querySelector ( ".md-virtual-repeat-scroller" ) , this . today = this . dateUtil . createDateAtMidnight ( ) , this . firstRenderableDate = this . dateUtil . incrementMonths ( this . today , - this . items . length / 2 ) , this . minDate && this . minDate > this . firstRenderableDate ) this . firstRenderableDate = this . minDate ; else if ( this . maxDate ) { this . items . length - 2 ; this . firstRenderableDate = this . dateUtil . incrementMonths ( this . maxDate , - ( this . items . length - 2 ) ) } this . id = d ++ , this . ngModelCtrl = null , this . selectedDate = null , this . displayDate = null , this . focusDate = null , this . isInitialized = ! 1 , this . is
options : o } ) . addPreset ( "confirm" , { methods : [ "title" , "htmlContent" , "textContent" , "content" , "ariaLabel" , "ok" , "cancel" , "theme" , "css" ] , options : o } ) . addPreset ( "prompt" , { methods : [ "title" , "htmlContent" , "textContent" , "content" , "placeholder" , "ariaLabel" , "ok" , "cancel" , "theme" , "css" ] , options : o } ) } t . module ( "material.components.dialog" , [ "material.core" , "material.components.backdrop" ] ) . directive ( "mdDialog" , e ) . provider ( "$mdDialog" , o ) , e . $inject = [ "$$rAF" , "$mdTheming" , "$mdDialog" ] , o . $inject = [ "$$interimElementProvider" ] } ( ) , function ( ) { function e ( e ) { return { restrict : "E" , link : e } } t . module ( "material.components.divider" , [ "material.core" ] ) . directive ( "mdDivider" , e ) , e . $inject = [ "$mdTheming" ] } ( ) , function ( ) { ! function ( ) { function e ( ) { return { restrict : "E" , require : [ "^?mdFabSpeedDial" , "^?mdFabToolbar" ] , compile : function ( e , n ) { var o = e . children ( ) , r = ! 1 ; t . forEach ( [ "" , "data-" , "x-" ] , function ( e ) { r = r || ! ! o . attr ( e + "ng-repeat" ) } ) , r ? o . addClass ( "md-fab-action-item" ) : o . wrap ( '<div class="md-fab-action-item">' ) } } } t . module ( "material.components.fabActions" , [ "material.core" ] ) . directive ( "mdFabActions" , e ) } ( ) } ( ) , function ( ) { ! function ( ) { function e ( e , n , o , r , i , a ) { function d ( ) { N . direction = N . direction || "down" , N . isOpen = N . isOpen || ! 1 , l ( ) , n . addClass ( "_md-animations-waiting" ) } function c ( ) { var o = [ "click" , "focusin" , "focusout" ] ; t . forEach ( o , function ( e ) { n . on ( e , s ) } ) , e . $on ( "$destroy" , function ( ) { t . forEach ( o , function ( e ) { n . off ( e , s ) } ) , h ( ) } ) } function s ( e ) { "click" == e . type && w ( e ) , "focusout" != e . type || S || ( S = a ( function ( ) { N . close ( ) } , 100 , ! 1 ) ) , "focusin" == e . type && S && ( a . cancel ( S ) , S = null ) } function l ( ) { N . currentActionIndex = - 1 } function m ( ) { e . $watch ( "vm.direction" , function ( e , t ) { o . removeClass ( n , "md-" + t ) , o . addClass ( n , "md-" + e ) , l ( ) } ) ; var t , r ; e . $watch ( "vm.isOpen" , function ( e ) { l ( ) , t && r || ( t = _ ( ) , r = x ( ) ) , e ? p ( ) : h ( ) ; var i = e ? "md-is-open" : "" , a = e ? "" : "md-is-open" ; t . attr ( "aria-haspopup" , ! 0 ) , t . attr ( "aria-expanded" , e ) , r . attr ( "aria-hidden" , ! e ) , o . setClass ( n , i , a ) } ) } function u ( ) { n [ 0 ] . scrollHeight > 0 ? o . addClass ( n , "_md-animations-ready" ) . then ( function ( ) { n . removeClass ( "_md-animations-waiting" ) } ) : 10 > H && ( a ( u , 100 ) , H += 1 ) } function p ( ) { n . on ( "keydown" , g ) , r . nextTick ( function ( ) { t . element ( document ) . on ( "click touchend" , f ) } ) } function h ( ) { n . off ( "keydown" , g ) , t . element ( document ) . off ( "click touchend" , f ) } function f ( e ) { if ( e . target ) { var t = r . getClosest ( e . target , "md-fab-trigger" ) , n = r . getClosest ( e . target , "md-fab-actions" ) ; t || n || N . close ( ) } } function g ( e ) { switch ( e . which ) { case i . KEY _CODE . ESCAPE : return N . close ( ) , e . preventDefault ( ) , ! 1 ; case i . KEY _CODE . LEFT _ARROW : return $ ( e ) , ! 1 ; case i . KEY _CODE . UP _ARROW : return y ( e ) , ! 1 ; case i . KEY _CODE . RIGHT _ARROW : return C ( e ) , ! 1 ; case i . KEY _CODE . DOWN _ARROW : return A ( e ) , ! 1 } } function b ( e ) { v ( e , - 1 ) } function E ( e ) { v ( e , 1 ) } function v ( e , n ) { var o = M ( ) ; N . currentActionIndex = N . currentActionIndex + n , N . currentActionIndex = Math . min ( o . length - 1 , N . currentActionIndex ) , N . currentActionIndex = Math . max ( 0 , N . currentActionIndex ) ; var r = t . element ( o [ N . currentActionIndex ] ) . children ( ) [ 0 ] ; t . element ( r ) . attr ( "tabindex" , 0 ) , r . focus ( ) , e . preventDefault ( ) , e . stopImmediatePropagation ( ) } function M ( ) { var e = x ( ) [ 0 ] . querySelectorAll ( ".md-fab-action-item" ) ; return t . forEach ( e , function ( e ) { t . element ( t . element ( e ) . children ( ) [ 0 ] ) . attr ( "tabindex" , - 1 ) } ) , e } function $ ( e ) { "left" === N . direction ? E ( e ) : b ( e ) } function y ( e ) { "down" === N . direction ? b ( e ) : E ( e ) } function C ( e ) { "left" === N . direction ? b ( e ) : E ( e ) } function A ( e ) { "up" === N . direction ? b ( e ) : E ( e ) } function T ( e ) { return r . getClosest ( e , "md-fab-trigger" ) } function k ( e ) { return r . getClosest ( e , "md-fab-actions" ) } function w ( e ) { T ( e . target ) && N . toggle ( ) , k ( e . target ) && N . close ( ) } function _ ( ) { return n . find ( "md-fab-trigger" ) } function x ( ) { return n . find ( "md-fab-actions" ) } var N = this ; N . open = function ( ) { e . $evalAsync ( "vm.isOpen = true" ) } , N . close = function ( ) { e . $evalAsync ( "vm.isOpen = false" ) , n . find ( "md-fab-trigger" ) [ 0 ] . focus ( ) } , N . toggle = function ( ) { e . $evalAsync ( "vm.isOpen = !vm.isOpen" ) } , d ( ) , c ( ) , m ( ) ; var H = 0 ; u ( ) ; var S } t . module ( "material.components.fabShared" , [ "material.core" ] ) . controller ( "MdFabController" , e ) , e . $inject = [ "$scope" , "$element" , "$animate" , "$mdUtil" , "$mdConstant" , "$timeout" ] } ( ) } ( ) , function ( ) { ! function ( ) { function n ( ) { function e ( e , t ) { t . prepend ( '<div class="_md-css-variables"></div>' ) } return { restric
l . append ( n ) } ) , a . parent ( ) . append ( l ) } var u = o . parseAttributeBoolean ( c . multiple ) , p = u ? "multiple" : "" , h = '<div class="_md-select-menu-container" aria-hidden="true"><md-select-menu {0}>{1}</md-select-menu></div>' ; return h = o . supplant ( h , [ p , a . html ( ) ] ) , a . empty ( ) . append ( s ) , a . append ( h ) , c . tabindex = c . tabindex || "0" , function ( a , c , s , l ) { function m ( ) { var e = c . attr ( "aria-label" ) || c . attr ( "placeholder" ) ; ! e && y && y . label && ( e = y . label . text ( ) ) , M = e , i . expect ( c , "aria-label" , e ) } function p ( ) { x && ( H = H || x . find ( "md-select-menu" ) . controller ( "mdSelectMenu" ) , C . setLabelText ( H . selectedLabels ( ) ) ) } function h ( ) { if ( M ) { var e = H . selectedLabels ( { mode : "aria" } ) ; c . attr ( "aria-label" , e . length ? M + ": " + e : M ) } } function f ( ) { y && y . setHasValue ( H . selectedLabels ( ) . length > 0 || ( c [ 0 ] . validity || { } ) . badInput ) } function g ( ) { if ( x = t . element ( c [ 0 ] . querySelector ( "._md-select-menu-container" ) ) , N = a , s . mdContainerClass ) { var e = x [ 0 ] . getAttribute ( "class" ) + " " + s . mdContainerClass ; x [ 0 ] . setAttribute ( "class" , e ) } H = x . find ( "md-select-menu" ) . controller ( "mdSelectMenu" ) , H . init ( A , s . ngModel ) , c . on ( "$destroy" , function ( ) { x . remove ( ) } ) } function b ( e ) { var n = [ 32 , 13 , 38 , 40 ] ; if ( - 1 != n . indexOf ( e . keyCode ) ) e . preventDefault ( ) , E ( e ) ; else if ( e . keyCode <= 90 && e . keyCode >= 31 ) { e . preventDefault ( ) ; var o = H . optNodeForKeyboardSearch ( e ) ; if ( ! o ) return ; var r = t . element ( o ) . controller ( "mdOption" ) ; H . isMultiple || H . deselect ( Object . keys ( H . selected ) [ 0 ] ) , H . select ( r . hashKey , r . value ) , H . refreshViewValue ( ) } } function E ( ) { N . isOpen = ! 0 , c . attr ( "aria-expanded" , "true" ) , e . show ( { scope : N , preserveScope : ! 0 , skipCompile : ! 0 , element : x , target : c [ 0 ] , selectCtrl : C , preserveElement : ! 0 , hasBackdrop : ! 0 , loadingAsync : s . mdOnOpen ? a . $eval ( s . mdOnOpen ) || ! 0 : ! 1 } ) [ "finally" ] ( function ( ) { N . isOpen = ! 1 , c . focus ( ) , c . attr ( "aria-expanded" , "false" ) , A . $setTouched ( ) } ) } var v , M , $ = ! 0 , y = l [ 0 ] , C = l [ 1 ] , A = l [ 2 ] , T = l [ 3 ] , k = c . find ( "md-select-value" ) , w = t . isDefined ( s . readonly ) ; if ( y ) { var _ = y . isErrorGetter || function ( ) { return A . $invalid && A . $touched } ; if ( y . input ) throw new Error ( "<md-input-container> can only have *one* child <input>, <textarea> or <select> element!" ) ; y . input = c , y . label || i . expect ( c , "aria-label" , c . attr ( "placeholder" ) ) , a . $watch ( _ , y . setInvalid ) } var x , N , H ; if ( g ( ) , r ( c ) , s . name && T ) { var S = c . parent ( ) [ 0 ] . querySelector ( 'select[name=".' + s . name + '"]' ) ; o . nextTick ( function ( ) { var e = t . element ( S ) . controller ( "ngModel" ) ; e && T . $removeControl ( e ) } ) } T && t . isDefined ( s . multiple ) && o . nextTick ( function ( ) { var e = A . $modelValue || A . $viewValue ; e && T . $setPristine ( ) } ) ; var D = A . $render ; A . $render = function ( ) { D ( ) , p ( ) , h ( ) , f ( ) } , s . $observe ( "placeholder" , A . $render ) , C . setLabelText = function ( e ) { C . setIsPlaceholder ( ! e ) ; var t = s . placeholder || ( y && y . label ? y . label . text ( ) : "" ) ; e = e || t || "" ; var n = k . children ( ) . eq ( 0 ) ; n . html ( e ) } , C . setIsPlaceholder = function ( e ) { e ? ( k . addClass ( "_md-select-placeholder" ) , y && y . label && y . label . addClass ( "_md-placeholder" ) ) : ( k . removeClass ( "_md-select-placeholder" ) , y && y . label && y . label . removeClass ( "_md-placeholder" ) ) } , w || ( c . on ( "focus" , function ( e ) { y && y . element . hasClass ( "md-input-has-value" ) && y . setFocused ( ! 0 ) } ) , o . nextTick ( function ( ) { c . on ( "blur" , function ( ) { $ && ( $ = ! 1 , A . $setUntouched ( ) ) , N . isOpen || ( y && y . setFocused ( ! 1 ) , f ( ) ) } ) } ) ) , C . triggerClose = function ( ) { d ( s . mdOnClose ) ( a ) } , a . $$postDigest ( function ( ) { m ( ) , p ( ) , h ( ) } ) , a . $watch ( H . selectedLabels , p ) ; var I ; s . $observe ( "ngMultiple" , function ( e ) { I && I ( ) ; var t = d ( e ) ; I = a . $watch ( function ( ) { return t ( a ) } , function ( e , t ) { e === n && t === n || ( e ? c . attr ( "multiple" , "multiple" ) : c . removeAttr ( "multiple" ) , c . attr ( "aria-multiselectable" , e ? "true" : "false" ) , x && ( H . setMultiple ( e ) , D = A . $render , A . $render = function ( ) { D ( ) , p ( ) , h ( ) , f ( ) } , A . $render ( ) ) ) } ) } ) , s . $observe ( "disabled" , function ( e ) { t . isString ( e ) && ( e = ! 0 ) , v !== n && v === e || ( v = e , e ? ( c . attr ( { tabindex : - 1 , "aria-disabled" : "true" } ) , c . off ( "click" , E ) , c . off ( "keydown" , b ) ) : ( c . attr ( { tabindex : s . tabindex , "aria-disabled" : "false" } ) , c . on ( "click" , E ) , c . on ( "keydown" , b ) ) ) } ) , s . disabled || s . ngDisabled || ( c . attr ( { tabindex : s . tabindex , "aria-disabled" : "false" } ) , c . on ( "click" , E ) , c . on ( "keydown" , b ) ) ; var O = { role : "listbox" , "aria-expanded" : "false" , "aria-multiselectable" : u && ! s . ngMultiple ? "true" : "false" } ; c [ 0 ] . hasAttribute ( "id" ) || ( O . id = "select_" + o . nextUid ( ) ) ; var R = "select_container_" + o . nextUid ( ) ; x . attr ( "id" , R ) , O [ "aria-owns" ] = R , c . attr ( O ) , a . $on ( "$destroy" , function ( ) { e .
require : "?ngModel" , compile : d } } t . module ( "material.components.switch" , [ "material.core" , "material.components.checkbox" ] ) . directive ( "mdSwitch" , e ) , e . $inject = [ "mdCheckboxDirective" , "$mdUtil" , "$mdConstant" , "$parse" , "$$rAF" , "$mdGesture" ] } ( ) , function ( ) { t . module ( "material.components.tabs" , [ "material.core" , "material.components.icon" ] ) } ( ) , function ( ) { function e ( e ) { return { restrict : "E" , link : function ( t , n , o ) { t . $on ( "$destroy" , function ( ) { e . destroy ( ) } ) } } } function n ( e ) { function n ( e ) { r = e } function o ( e , n , o , i ) { function a ( t , a , d ) { r = d . textContent || d . content ; var l = ! i ( "gt-sm" ) ; return a = o . extractElementByName ( a , "md-toast" , ! 0 ) , d . onSwipe = function ( e , t ) { var r = e . type . replace ( "$md." , "" ) , i = r . replace ( "swipe" , "" ) ; "down" === i && - 1 != d . position . indexOf ( "top" ) && ! l || "up" === i && ( - 1 != d . position . indexOf ( "bottom" ) || l ) || ( "left" !== i && "right" !== i || ! l ) && ( a . addClass ( "_md-" + r ) , o . nextTick ( n . cancel ) ) } , d . openClass = c ( d . position ) , d . parent . addClass ( d . openClass ) , o . hasComputedStyle ( d . parent , "position" , "static" ) && d . parent . css ( "position" , "relative" ) , a . on ( s , d . onSwipe ) , a . addClass ( l ? "_md-bottom" : d . position . split ( " " ) . map ( function ( e ) { return "_md-" + e } ) . join ( " " ) ) , d . parent && d . parent . addClass ( "_md-toast-animating" ) , e . enter ( a , d . parent ) . then ( function ( ) { d . parent && d . parent . removeClass ( "_md-toast-animating" ) } ) } function d ( t , n , r ) { return n . off ( s , r . onSwipe ) , r . parent && r . parent . addClass ( "_md-toast-animating" ) , r . openClass && r . parent . removeClass ( r . openClass ) , ( 1 == r . $destroy ? n . remove ( ) : e . leave ( n ) ) . then ( function ( ) { r . parent && r . parent . removeClass ( "_md-toast-animating" ) , o . hasComputedStyle ( r . parent , "position" , "static" ) && r . parent . css ( "position" , "" ) } ) } function c ( e ) { return i ( "gt-xs" ) ? "_md-toast-open-" + ( e . indexOf ( "top" ) > - 1 ? "top" : "bottom" ) : "_md-toast-open-bottom" } var s = "$md.swipeleft $md.swiperight $md.swipeup $md.swipedown" ; return { onShow : a , onRemove : d , position : "bottom left" , themable : ! 0 , hideDelay : 3e3 , autoWrap : ! 0 , transformTemplate : function ( e , n ) { var o = n . autoWrap && e && ! /md-toast-content/g . test ( e ) ; if ( o ) { var r = t . element ( e ) , i = '<div class="md-toast-content">' + r . html ( ) + "</div>" ; return r . empty ( ) . append ( i ) , r [ 0 ] . outerHTML } return o ? '<div class="md-toast-content">' + e + "</div>" : e || "" } } } var r , i = "ok" , a = e ( "$mdToast" ) . setDefaults ( { methods : [ "position" , "hideDelay" , "capsule" , "parent" , "position" ] , options : o } ) . addPreset ( "simple" , { argOption : "textContent" , methods : [ "textContent" , "content" , "action" , "highlightAction" , "highlightClass" , "theme" , "parent" ] , options : [ "$mdToast" , "$mdTheming" , function ( e , t ) { return { template : '<md-toast md-theme="{{ toast.theme }}" ng-class="{\'md-capsule\': toast.capsule}"> <div class="md-toast-content"> <span flex class="md-toast-text" role="alert" aria-relevant="all" aria-atomic="true"> {{ toast.content }} </span> <md-button class="md-action" ng-if="toast.action" ng-click="toast.resolve()" ng-class="highlightClasses"> {{ toast.action }} </md-button> </div></md-toast>' , controller : [ "$scope" , function ( t ) { var n = this ; n . highlightAction && ( t . highlightClasses = [ "md-highlight" , n . highlightClass ] ) , t . $watch ( function ( ) { return r } , function ( ) { n . content = r } ) , this . resolve = function ( ) { e . hide ( i ) } } ] , theme : t . defaultTheme ( ) , controllerAs : "toast" , bindToController : ! 0 } } ] } ) . addMethod ( "updateTextContent" , n ) . addMethod ( "updateContent" , n ) ; return o . $inject = [ "$animate" , "$mdToast" , "$mdUtil" , "$mdMedia" ] , a } t . module ( "material.components.toast" , [ "material.core" , "material.components.button" ] ) . directive ( "mdToast" , e ) . provider ( "$mdToast" , n ) , e . $inject = [ "$mdToast" ] , n . $inject = [ "$$interimElementProvider" ] } ( ) , function ( ) { function e ( e , n , o , r , i ) { var a = t . bind ( null , o . supplant , "translate3d(0,{0}px,0)" ) ; return { template : "" , restrict : "E" , link : function ( d , c , s ) { function l ( ) { function r ( e ) { var t = c . parent ( ) . find ( "md-content" ) ; ! f && t . length && l ( null , t ) , e = d . $eval ( e ) , e === ! 1 ? g ( ) : g = u ( ) } function l ( e , t ) { t && c . parent ( ) [ 0 ] === t . parent ( ) [ 0 ] && ( f && f . off ( "scroll" , M ) , f = t , g = u ( ) ) } function m ( e ) { var t = e ? e . target . scrollTop : E ; $ ( ) , b = Math . min ( h / v , Math . max ( 0 , b + t - E ) ) , c . css ( n . CSS . TRANSFORM , a ( [ - b * v ] ) ) , f . css ( n . CSS . TRANSFORM , a ( [ ( h - b ) * v ] ) ) , E = t , o . nextTick ( function ( ) { var e = c . hasClass ( "md-whiteframe-z1" ) ; e && ! b ? i . removeClass ( c , "md-whiteframe-z1" ) : ! e && b && i . addClass ( c , "md-whiteframe-z1" ) } ) } function u ( ) {
} } } t . module ( "material.components.autocomplete" ) . directive ( "mdAutocomplete" , e ) } ( ) , function ( ) { function e ( e , t ) { function n ( e , n , o ) { return function ( e , n , r ) { function i ( n , o ) { c [ o ] = e [ n ] , e . $watch ( n , function ( e ) { t . nextTick ( function ( ) { c [ o ] = e } ) } ) } function a ( ) { var t = ! 1 , n = ! 1 ; e . $watch ( function ( ) { n || t || ( t = ! 0 , e . $$postDigest ( function ( ) { n || c . $digest ( ) , t = n = ! 1 } ) ) } ) , c . $watch ( function ( ) { n = ! 0 } ) } var d = e . $mdAutocompleteCtrl , c = d . parent . $new ( ) , s = d . itemName ; i ( "$index" , "$index" ) , i ( "item" , s ) , a ( ) , o ( c , function ( e ) { n . after ( e ) } ) } } return { restrict : "AE" , compile : n , terminal : ! 0 , transclude : "element" } } t . module ( "material.components.autocomplete" ) . directive ( "mdAutocompleteParentScope" , e ) , e . $inject = [ "$compile" , "$mdUtil" ] } ( ) , function ( ) { function e ( e , n , o ) { function r ( r , i ) { var d = null , c = null , s = o . mdHighlightFlags || "" , l = e . $watch ( function ( e ) { return { term : r ( e ) , unsafeText : i ( e ) } } , function ( e , o ) { null !== d && e . unsafeText === o . unsafeText || ( d = t . element ( "<div>" ) . text ( e . unsafeText ) . html ( ) ) , null !== c && e . term === o . term || ( c = a ( e . term , s ) ) , n . html ( d . replace ( c , '<span class="highlight">$&</span>' ) ) } , ! 0 ) ; n . on ( "$destroy" , l ) } function i ( e ) { return e && e . replace ( /[\\\^\$\*\+\?\.\(\)\|\{}\[\]]/g , "\\$&" ) } function a ( e , t ) { var n = "" ; return t . indexOf ( "^" ) >= 1 && ( n += "^" ) , n += e , t . indexOf ( "$" ) >= 1 && ( n += "$" ) , new RegExp ( i ( n ) , t . replace ( /[\$\^]/g , "" ) ) } this . init = r } t . module ( "material.components.autocomplete" ) . controller ( "MdHighlightCtrl" , e ) , e . $inject = [ "$scope" , "$element" , "$attrs" ] } ( ) , function ( ) { function e ( e , t ) { return { terminal : ! 0 , controller : "MdHighlightCtrl" , compile : function ( n , o ) { var r = t ( o . mdHighlightText ) , i = e ( n . html ( ) ) ; return function ( e , t , n , o ) { o . init ( r , i ) } } } } t . module ( "material.components.autocomplete" ) . directive ( "mdHighlightText" , e ) , e . $inject = [ "$interpolate" , "$parse" ] } ( ) , function ( ) { function e ( e , o ) { function r ( n , r ) { return n . append ( o . processTemplate ( i ) ) , function ( n , o , r , i ) { e ( o ) , i && t . element ( o [ 0 ] . querySelector ( "._md-chip-content" ) ) . on ( "blur" , function ( ) { i . resetSelectedChip ( ) , i . $scope . $applyAsync ( ) } ) } } var i = o . processTemplate ( n ) ; return { restrict : "E" , require : "^?mdChips" , compile : r } } t . module ( "material.components.chips" ) . directive ( "mdChip" , e ) ; var n = ' <span ng-if="!$mdChipsCtrl.readonly" class="_md-visually-hidden"> {{$mdChipsCtrl.deleteHint}} </span>' ; e . $inject = [ "$mdTheming" , "$mdUtil" ] } ( ) , function ( ) { function e ( e ) { function t ( t , n , o , r ) { n . on ( "click" , function ( e ) { t . $apply ( function ( ) { r . removeChip ( t . $$replacedScope . $index ) } ) } ) , e ( function ( ) { n . attr ( { tabindex : - 1 , "aria-hidden" : ! 0 } ) , n . find ( "button" ) . attr ( "tabindex" , "-1" ) } ) } return { restrict : "A" , require : "^mdChips" , scope : ! 1 , link : t } } t . module ( "material.components.chips" ) . directive ( "mdChipRemove" , e ) , e . $inject = [ "$timeout" ] } ( ) , function ( ) { function e ( e ) { function t ( t , n , o ) { var r = t . $parent . $mdChipsCtrl , i = r . parent . $new ( ! 1 , r . parent ) ; i . $$replacedScope = t , i . $chip = t . $chip , i . $index = t . $index , i . $mdChipsCtrl = r ; var a = r . $scope . $eval ( o . mdChipTransclude ) ; n . html ( a ) , e ( n . contents ( ) ) ( i ) } return { restrict : "EA" , terminal : ! 0 , link : t , scope : ! 1 } } t . module ( "material.components.chips" ) . directive ( "mdChipTransclude" , e ) , e . $inject = [ "$compile" ] } ( ) , function ( ) { function e ( e , t , n , o , r ) { this . $timeout = r , this . $mdConstant = t , this . $scope = e , this . parent = e . $parent , this . $log = n , this . $element = o , this . ngModelCtrl = null , this . userInputNgModelCtrl = null , this . userInputElement = null , this . items = [ ] , this . selectedChip = - 1 , this . hasAutocomplete = ! 1 , this . deleteHint = "Press delete to remove this chip." , this . deleteButtonLabel = "Remove" , this . chipBuffer = "" , this . useOnAppend = ! 1 , this . useTransformChip = ! 1 , this . useOnAdd = ! 1 , this . useOnRemove = ! 1 , this . useOnSelect = ! 1 } t . module ( "material.components.chips" ) . controller ( "MdChipsCtrl" , e ) , e . $inject = [ "$scope" , "$mdConstant" , "$log" , "$element" , "$timeout" ] , e . prototype . inputKeydown = function ( e ) { var t = this . getChipBuffer ( ) ; if ( ! ( this . hasAutocomplete && e . isDefaultPrevented && e . isDefaultPrevented ( ) ) ) { if ( e . keyCode === this . $mdConstant . KEY _CODE . BACKSPACE ) { if ( t ) return ; return e . preventDefault ( ) , e . stopPropagation ( ) , void ( this . items . length && this . selectAndFocusChipSafe ( this . items . length - 1 ) ) } if ( ( ! this . separatorKeys || this . separatorKeys . length < 1 ) && ( this . separatorKeys = [ this . $mdConstant . KEY _CODE . ENTER ] ) , - 1 !== this . separatorKeys . indexOf ( e . keyCode ) ) { if ( this . hasAutocomplete && this . requir
} var k = o . mdMenuCtrl . offsets ( ) ; y . top += k . top , y . left += k . left , r ( y ) ; var w = Math . round ( 100 * Math . min ( b . width / l . offsetWidth , 1 ) ) / 100 , _ = Math . round ( 100 * Math . min ( b . height / l . offsetHeight , 1 ) ) / 100 ; return { top : Math . round ( y . top ) , left : Math . round ( y . left ) , transform : o . alreadyOpen ? n : e . supplant ( "scale({0},{1})" , [ w , _ ] ) , transformOrigin : C } } var M = e . dom . animator ; return { parent : "body" , onShow : f , onRemove : h , hasBackdrop : ! 0 , disableParentScroll : ! 0 , skipCompile : ! 0 , preserveScope : ! 0 , skipHide : ! 0 , themable : ! 0 } } function r ( e ) { return e instanceof t . element && ( e = e [ 0 ] ) , e } var i = 8 ; return o . $inject = [ "$mdUtil" , "$mdTheming" , "$mdConstant" , "$document" , "$window" , "$q" , "$$rAF" , "$animateCss" , "$animate" ] , e ( "$mdMenu" ) . setDefaults ( { methods : [ "target" ] , options : o } ) } t . module ( "material.components.menu" ) . provider ( "$mdMenu" , e ) , e . $inject = [ "$$interimElementProvider" ] } ( ) , function ( ) { function e ( e , n , r , i , a , d , c , s ) { this . $element = r , this . $attrs = i , this . $mdConstant = a , this . $mdUtil = c , this . $document = d , this . $scope = e , this . $rootScope = n , this . $timeout = s ; var l = this ; t . forEach ( o , function ( e ) { l [ e ] = t . bind ( l , l [ e ] ) } ) } t . module ( "material.components.menuBar" ) . controller ( "MenuBarController" , e ) ; var o = [ "handleKeyDown" , "handleMenuHover" , "scheduleOpenHoveredMenu" , "cancelScheduledOpen" ] ; e . $inject = [ "$scope" , "$rootScope" , "$element" , "$attrs" , "$mdConstant" , "$document" , "$mdUtil" , "$timeout" ] , e . prototype . init = function ( ) { var e = this . $element , t = this . $mdUtil , o = this . $scope , r = this , i = [ ] ; e . on ( "keydown" , this . handleKeyDown ) , this . parentToolbar = t . getClosest ( e , "MD-TOOLBAR" ) , i . push ( this . $rootScope . $on ( "$mdMenuOpen" , function ( t , n ) { - 1 != r . getMenus ( ) . indexOf ( n [ 0 ] ) && ( e [ 0 ] . classList . add ( "_md-open" ) , n [ 0 ] . classList . add ( "_md-open" ) , r . currentlyOpenMenu = n . controller ( "mdMenu" ) , r . currentlyOpenMenu . registerContainerProxy ( r . handleKeyDown ) , r . enableOpenOnHover ( ) ) } ) ) , i . push ( this . $rootScope . $on ( "$mdMenuClose" , function ( o , i , a ) { var d = r . getMenus ( ) ; if ( - 1 != d . indexOf ( i [ 0 ] ) && ( e [ 0 ] . classList . remove ( "_md-open" ) , i [ 0 ] . classList . remove ( "_md-open" ) ) , e [ 0 ] . contains ( i [ 0 ] ) ) { for ( var c = i [ 0 ] ; c && - 1 == d . indexOf ( c ) ; ) c = t . getClosest ( c , "MD-MENU" , ! 0 ) ; c && ( a . skipFocus || c . querySelector ( "button:not([disabled])" ) . focus ( ) , r . currentlyOpenMenu = n , r . disableOpenOnHover ( ) , r . setKeyboardMode ( ! 0 ) ) } } ) ) , o . $on ( "$destroy" , function ( ) { for ( ; i . length ; ) i . shift ( ) ( ) } ) , this . setKeyboardMode ( ! 0 ) } , e . prototype . setKeyboardMode = function ( e ) { e ? this . $element [ 0 ] . classList . add ( "_md-keyboard-mode" ) : this . $element [ 0 ] . classList . remove ( "_md-keyboard-mode" ) } , e . prototype . enableOpenOnHover = function ( ) { if ( ! this . openOnHoverEnabled ) { this . openOnHoverEnabled = ! 0 ; var e ; ( e = this . parentToolbar ) && ( e . dataset . mdRestoreStyle = e . getAttribute ( "style" ) , e . style . position = "relative" , e . style . zIndex = 100 ) , t . element ( this . getMenus ( ) ) . on ( "mouseenter" , this . handleMenuHover ) } } , e . prototype . handleMenuHover = function ( e ) { this . setKeyboardMode ( ! 1 ) , this . openOnHoverEnabled && this . scheduleOpenHoveredMenu ( e ) } , e . prototype . disableOpenOnHover = function ( ) { if ( this . openOnHoverEnabled ) { this . openOnHoverEnabled = ! 1 ; var e ; ( e = this . parentToolbar ) && ( e . style . cssText = e . dataset . mdRestoreStyle || "" ) , t . element ( this . getMenus ( ) ) . off ( "mouseenter" , this . handleMenuHover ) } } , e . prototype . scheduleOpenHoveredMenu = function ( e ) { var n = t . element ( e . currentTarget ) , o = n . controller ( "mdMenu" ) ; this . setKeyboardMode ( ! 1 ) , this . scheduleOpenMenu ( o ) } , e . prototype . scheduleOpenMenu = function ( e ) { var t = this , o = this . $timeout ; e != t . currentlyOpenMenu && ( o . cancel ( t . pendingMenuOpen ) , t . pendingMenuOpen = o ( function ( ) { t . pendingMenuOpen = n , t . currentlyOpenMenu && t . currentlyOpenMenu . close ( ! 0 , { closeAll : ! 0 } ) , e . open ( ) } , 200 , ! 1 ) ) } , e . prototype . handleKeyDown = function ( e ) { var n = this . $mdConstant . KEY _CODE , o = this . currentlyOpenMenu , r = o && o . isOpen ; this . setKeyboardMode ( ! 0 ) ; var i , a , d ; switch ( e . keyCode ) { case n . DOWN _ARROW : o ? o . focusMenuContainer ( ) : this . openFocusedMenu ( ) , i = ! 0 ; break ; case n . UP _ARROW : o && o . close ( ) , i = ! 0 ; break ; case n . LEFT _ARROW : a = this . focusMenu ( - 1 ) , r && ( d = t . element ( a ) . controller ( "mdMenu" ) , this . scheduleOpenMenu ( d ) ) , i = ! 0 ; break ; case n . RIGHT _ARROW : a = this . focusMenu ( 1 ) , r && ( d = t . element ( a ) . controller ( "mdMenu" ) , this . scheduleOpenMenu ( d ) ) , i = ! 0 } i && ( e && e . preventDefault && e . preventDefault ( ) , e && e . stopImmediatePropagation && e . stopImmediatePropagation ( ) ) } , e . prototype . focusMenu = function ( e
} ( ) } ( window , window . angular ) , window . ngMaterial = { version : { full : "1.0.6-master-a653122" } } ;