2015-08-07 16:37:36 +02:00
/ * !
* Angular Material Design
* https : //github.com/angular/material
* @ license MIT
2016-02-03 19:34:41 +01:00
* v1 . 0.4 - master - ad9ba52
2015-08-07 16:37:36 +02:00
* /
2016-02-03 19:34:41 +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 , 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 . filter ( function (
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 . clientY - t . top ; this . createRipple ( n , o ) } else this . createRipple ( e . offsetX , e . offsetY ) } , o . prototype . handleMouseup = function ( ) { r ( this , this . clearRipples ) } , o . prototype . handleTouchmove = function ( ) { r ( this , this . deleteRipples ) } , o . prototype . deleteRipples = function ( ) { for ( var e = 0 ; e < this . ripples . length ; e ++ ) this . ripples [ e ] . remove ( ) } , o . prototype . clearRip
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 . isMonthTransitionInProgress = ! 1 , t . tabindex || e . attr ( "tabindex" , "-1" ) ; var p = this ; this . cellClickHandler = function ( ) { var e = this ; this . hasAttribute ( "data-timestamp" ) && n . $apply ( function ( ) { var t = Number ( e . getAttribute ( "data-timestamp" ) ) ; p . setNgModelValue ( p . dateUtil . createDateAtMidnight ( t ) ) } ) } , this . attachCalendarEventListeners ( ) } t . module ( "material.components.datepicker" , [ "material.core" , "material.components.icon" , "material.components.virtualRepeat" ] ) . directive ( "mdCalendar" , e ) ; var o = 265 , r = 45 , i = "md-calendar-selected-date" , a = "md-focus" , d = 0 ; n . $inject = [ " $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" ) ? ! 0 : ! 1 ) } ) , 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 ( ) { _ . direction = _ . direction || "down" , _ . isOpen = _ . 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 && k ( e ) , "focusout" != e . type || S || ( S = a ( function ( ) { _ . close ( ) } , 100 , ! 1 ) ) , "focusin" == e . type && S && ( a . cancel ( S ) , S = null ) } function l ( ) { _ . 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 = x ( ) , r = N ( ) ) , 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 || _ . close ( ) } } function g ( e ) { switch ( e . which ) { case i . KEY _CODE . ESCAPE : return _ . 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 ( ) ; _ . currentActionIndex = _ . currentActionIndex + n , _ . currentActionIndex = Math . min ( o . length - 1 , _ . currentActionIndex ) , _ . currentActionIndex = Math . max ( 0 , _ . currentActionIndex ) ; var r = t . element ( o [ _ . currentActionIndex ] ) . children ( ) [ 0 ] ; t . element ( r ) . attr ( "tabindex" , 0 ) , r . focus ( ) , e . preventDefault ( ) , e . stopImmediatePropagation ( ) } function M ( ) { var e = N ( ) [ 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" === _ . direction ? E ( e ) : b ( e ) } function y ( e ) { "down" === _ . direction ? b ( e ) : E ( e ) } function C ( e ) { "left" === _ . direction ? b ( e ) : E ( e ) } function A ( e ) { "up" === _ . direction ? b ( e ) : E ( e ) } function T ( e ) { return r . getClosest ( e , "md-fab-trigger" ) } function w ( e ) { return r . getClosest ( e , "md-fab-actions" ) } function k ( e ) { T ( e . target ) && _ . toggle ( ) , w ( e . target ) && _ . close ( ) } function x ( ) { return n . find ( "md-fab-trigger" ) } function N ( ) { return n . find ( "md-fab-actions" ) } var _ = this ; _ . open = function ( ) { e . $evalAsync ( "vm.isOpen = true" ) } , _ . close = function ( ) { e . $evalAsync ( "vm.isOpen = false" ) , n . find ( "md-fab-trigger" ) [ 0 ] . focus ( ) } , _ . 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 { restrict : "E" , scope : { direction : "@?mdDirection" , isOpen : "=?mdOpen" } , bindToController : ! 0 , controller : "MdFabController" , controllerAs : "vm" , link : e } } function o ( n ) { function o ( e ) { n ( e , i , ! 1 ) } function r ( n ) { if ( ! n . hasClass ( "md-animations-waiting" ) || n . hasClass ( "md-animations-ready" ) ) { var o = n [ 0 ] , r = n . controller ( "mdFabSpeedDial" ) , i = o . querySelectorAll ( ".md-fab-action-item" ) , a = o . querySelector ( "md-fab-trigger" ) , d = o . querySelector ( ".md-css-variables" ) , c = parseInt ( e . getComputedStyle ( d ) . zIndex ) ; t . forEach ( i , function ( e , t ) { var n = e . style ; n . transform = n . webkitTransform = "" , n . transitionDelay = "" , n . opacity = 1 , n . zIndex = i . length - t + c } ) , a . style . zIndex = c + i . length + 1 , r . isOpen || t . forEa
s . addClass ( "md-select-value" ) , s [ 0 ] . hasAttribute ( "id" ) || s . attr ( "id" , "select_value_label_" + o . nextUid ( ) ) , a . find ( "md-content" ) . length || a . append ( t . element ( "<md-content>" ) . append ( a . contents ( ) ) ) , c . mdOnOpen && ( a . find ( "md-content" ) . prepend ( t . element ( '<div> <md-progress-circular md-mode="{{progressMode}}" ng-hide="$$loadingAsyncDone"></md-progress-circular></div>' ) ) , a . find ( "md-option" ) . attr ( "ng-show" , "$$loadingAsyncDone" ) ) , c . name ) { var l = t . element ( '<select class="md-visually-hidden">' ) ; l . attr ( { name : "." + c . name , "ng-model" : c . ngModel , "aria-hidden" : "true" , tabindex : "-1" } ) ; var m = a . find ( "md-option" ) ; t . forEach ( m , function ( e ) { var n = t . element ( "<option>" + e . innerHTML + "</option>" ) ; e . hasAttribute ( "ng-value" ) ? n . attr ( "ng-value" , e . getAttribute ( "ng-value" ) ) : e . hasAttribute ( "value" ) && n . attr ( "value" , e . getAttribute ( "value" ) ) , l . append ( n ) } ) , a . parent ( ) . append ( l ) } var u = t . isDefined ( c . multiple ) ? "multiple" : "" , p = '<div class="md-select-menu-container" aria-hidden="true"><md-select-menu {0}>{1}</md-select-menu></div>' ; return p = o . supplant ( p , [ u , a . html ( ) ] ) , a . empty ( ) . append ( s ) , a . append ( p ) , c . tabindex = c . tabindex || "0" , function ( a , c , s , l ) { function m ( ) { var e = c . attr ( "aria-label" ) || c . attr ( "placeholder" ) ; ! e && $ && $ . label && ( e = $ . label . text ( ) ) , v = e , i . expect ( c , "aria-label" , e ) } function u ( ) { x && ( _ = _ || x . find ( "md-select-menu" ) . controller ( "mdSelectMenu" ) , y . setLabelText ( _ . selectedLabels ( ) ) ) } function p ( ) { if ( v ) { var e = _ . selectedLabels ( { mode : "aria" } ) ; c . attr ( "aria-label" , e . length ? v + ": " + e : v ) } } function h ( ) { $ && $ . setHasValue ( _ . selectedLabels ( ) . length > 0 || ( c [ 0 ] . validity || { } ) . badInput ) } function f ( ) { if ( x = t . element ( c [ 0 ] . querySelector ( ".md-select-menu-container" ) ) , N = a , c . attr ( "md-container-class" ) ) { var e = x [ 0 ] . getAttribute ( "class" ) + " " + c . attr ( "md-container-class" ) ; x [ 0 ] . setAttribute ( "class" , e ) } _ = x . find ( "md-select-menu" ) . controller ( "mdSelectMenu" ) , _ . init ( C , s . ngModel ) , c . on ( "$destroy" , function ( ) { x . remove ( ) } ) } function g ( e ) { var n = [ 32 , 13 , 38 , 40 ] ; if ( - 1 != n . indexOf ( e . keyCode ) ) e . preventDefault ( ) , b ( e ) ; else if ( e . keyCode <= 90 && e . keyCode >= 31 ) { e . preventDefault ( ) ; var o = _ . optNodeForKeyboardSearch ( e ) ; if ( ! o ) return ; var r = t . element ( o ) . controller ( "mdOption" ) ; _ . isMultiple || _ . deselect ( Object . keys ( _ . selected ) [ 0 ] ) , _ . select ( r . hashKey , r . value ) , _ . refreshViewValue ( ) } } function b ( ) { N . isOpen = ! 0 , c . attr ( "aria-expanded" , "true" ) , e . show ( { scope : N , preserveScope : ! 0 , skipCompile : ! 0 , element : x , target : c [ 0 ] , selectCtrl : y , 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" ) , C . $setTouched ( ) } ) } var E , v , M = ! 0 , $ = l [ 0 ] , y = l [ 1 ] , C = l [ 2 ] , A = l [ 3 ] , T = c . find ( "md-select-value" ) , w = t . isDefined ( s . readonly ) ; if ( $ ) { var k = $ . isErrorGetter || function ( ) { return C . $invalid && C . $touched } ; if ( $ . input ) throw new Error ( "<md-input-container> can only have *one* child <input>, <textarea> or <select> element!" ) ; $ . input = c , $ . label || i . expect ( c , "aria-label" , c . attr ( "placeholder" ) ) , a . $watch ( k , $ . setInvalid ) } var x , N , _ ; if ( f ( ) , r ( c ) , s . name && A ) { var H = c . parent ( ) [ 0 ] . querySelector ( 'select[name=".' + s . name + '"]' ) ; o . nextTick ( function ( ) { var e = t . element ( H ) . controller ( "ngModel" ) ; e && A . $removeControl ( e ) } ) } A && t . isDefined ( s . multiple ) && o . nextTick ( function ( ) { var e = C . $modelValue || C . $viewValue ; e && A . $setPristine ( ) } ) ; var S = C . $render ; C . $render = function ( ) { S ( ) , u ( ) , p ( ) , h ( ) } , s . $observe ( "placeholder" , C . $render ) , y . setLabelText = function ( e ) { y . setIsPlaceholder ( ! e ) ; var t = s . placeholder || ( $ && $ . label ? $ . label . text ( ) : "" ) ; e = e || t || "" ; var n = T . children ( ) . eq ( 0 ) ; n . html ( e ) } , y . setIsPlaceholder = function ( e ) { e ? ( T . addClass ( "md-select-placeholder" ) , $ && $ . label && $ . label . addClass ( "md-placeholder" ) ) : ( T . removeClass ( "md-select-placeholder" ) , $ && $ . label && $ . label . removeClass ( "md-placeholder" ) ) } , w || ( c . on ( "focus" , function ( e ) { $ && $ . element . hasClass ( "md-input-has-value" ) && $ . setFocused ( ! 0 ) } ) , o . nextTick ( function ( ) { c . on ( "blur" , function ( ) { M && ( M = ! 1 , C . $setUntouched ( ) ) , N . isOpen || ( $ && $ . setFocused ( ! 1 ) , h ( ) ) } ) } ) ) , y . triggerClose = function ( ) { d ( s . mdOnClose ) ( a ) } , a . $$postDigest ( function ( ) { m ( ) , u ( ) , p ( ) } ) , a . $watch ( _ . selectedLabels , u ) ; var D ; s . $observe ( "ngMultiple" , function ( e ) { D && D ( ) ; var t = d ( e ) ; D = a . $watch ( function ( ) { return t ( a ) } , function ( e , t ) { ( e !== n || t !== n ) && ( e ? c . attr ( "multiple" , " multipl
r . parent && r . parent . removeClass ( "md-toast-animating" ) , o . hasComputedStyle ( r . parent , "position" , "static" ) && r . parent . css ( "position" , "" ) } ) } function c ( e ) { return i ( "gt-sm" ) ? "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" ] , options : o } ) . addPreset ( "simple" , { argOption : "textContent" , methods : [ "textContent" , "content" , "action" , "highlightAction" , "theme" , "parent" ] , options : [ "$mdToast" , "$mdTheming" , function ( e , t ) { var n = { template : '<md-toast md-theme="{{ toast.theme }}" ng-class="{\'md-capsule\': toast.capsule}"> <div class="md-toast-content"> <span flex 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="{\'md-highlight\': toast.highlightAction}"> {{ toast.action }} </md-button> </div></md-toast>' , controller : [ "$scope" , function ( t ) { var n = this ; t . $watch ( function ( ) { return r } , function ( ) { n . content = r } ) , this . resolve = function ( ) { e . hide ( i ) } } ] , theme : t . defaultTheme ( ) , controllerAs : "toast" , bindToController : ! 0 } ; return n } ] } ) . 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 ( ) { return f ? ( f . on ( "scroll" , M ) , f . attr ( "scroll-shrink" , "true" ) , e ( p ) , function ( ) { f . off ( "scroll" , M ) , f . attr ( "scroll-shrink" , "false" ) , e ( p ) } ) : t . noop } function p ( ) { h = c . prop ( "offsetHeight" ) ; var e = - h * v + "px" ; f . css ( { "margin-top" : e , "margin-bottom" : e } ) , m ( ) } var h , f , g = t . noop , b = 0 , E = 0 , v = s . mdShrinkSpeedFactor || . 5 , M = e . throttle ( m ) , $ = o . debounce ( p , 5e3 ) ; d . $on ( "$mdContentLoaded" , l ) , s . $observe ( "mdScrollShrink" , r ) , s . ngShow && d . $watch ( s . ngShow , p ) , s . ngHide && d . $watch ( s . ngHide , p ) , d . $on ( "$destroy" , g ) } r ( c ) , t . isDefined ( s . mdScrollShrink ) && l ( ) } } } t . module ( "material.components.toolbar" , [ "material.core" , "material.components.content" ] ) . directive ( "mdToolbar" , e ) , e . $inject = [ "$$rAF" , "$mdConstant" , "$mdUtil" , "$mdTheming" , "$animate" ] } ( ) , function ( ) { function e ( e , n , o , r , i , a , d , c , s ) { function l ( d , l , p ) { function h ( ) { d . delay = d . delay || m } function f ( ) { var e = "center top" ; switch ( d . direction ) { case "left" : e = "right center" ; break ; case "right" : e = "left center" ; break ; case "top" : e = "center bottom" ; break ; case "bottom" : e = "center top" } w . css ( "transform-origin" , e ) } function g ( ) { d . $on ( "$destroy" , function ( ) { d . visible = ! 1 , l . remove ( ) , t . element ( n ) . off ( "resize" , x ) } ) , d . $watch ( "visible" , function ( e ) { e ? $ ( ) : y ( ) } ) , d . $watch ( "direction" , C ) } function b ( ) { T . attr ( "aria-label" ) || T . text ( ) . trim ( ) || T . attr ( "aria-label" , l . text ( ) . trim ( ) ) } function E ( ) { l . detach ( ) , l . attr ( "role" , "tooltip" ) } function v ( ) { function e ( ) { M ( ! 1 ) } var o = ! 1 , i = t . element ( n ) ; if ( T [ 0 ] && "MutationObserver" in n ) { var a = new MutationObserver ( function ( e ) { e . forEach ( function ( e ) { "disabled" === e . attributeName && T [ 0 ] . disabled && ( M ( ! 1 ) , d . $digest ( ) ) } ) } ) ; a . observe ( T [ 0 ] , { attributes : ! 0 } ) } v
} ( ) , function ( ) { function e ( e , o ) { function r ( n , r ) { return n . append ( o . processTemplate ( i ) ) , function ( n , o , r , i ) { o . addClass ( "md-chip" ) , e ( o ) , i && t . element ( o [ 0 ] . querySelector ( ".md-chip-content" ) ) . on ( "blur" , function ( ) { i . selectedChip = - 1 } ) } } 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 . requireMatch || ! t ) return ; e . preventDefault ( ) , this . appendChip ( t ) , this . resetChipBuffer ( ) } } } , e . prototype . chipKeydown = function ( e ) { if ( ! this . getChipBuffer ( ) ) switch ( e . keyCode ) { case this . $mdConstant . KEY _CODE . BACKSPACE : case this . $mdConstant . KEY _CODE . DELETE : if ( this . selectedChip < 0 ) return ; e . preventDefault ( ) , this . removeAndSelectAdjacentChip ( this . selectedChip ) ; break ; case this . $mdConstant . KEY _CODE . LEFT _ARROW : e . preventDefault ( ) , this . selectedChip < 0 && ( this . selectedChip = this . items . length ) , this . items . length && this . selectAndFocusChipSafe ( this . selectedChip - 1 ) ; break ; case this . $mdConstant . KEY _CODE . RIGHT _ARROW : e . preventDefault ( ) , this . selectAndFocusChipSafe ( this . selectedChip + 1 ) ; break ; case this . $mdConstant . KEY _CODE . ESCAPE : case this . $mdConstant . KEY _CODE . TAB : if ( this . selectedChip < 0 ) return ; e . preventDefault ( ) , this . onFocus ( ) } } , e . prototype . getPlaceholder = function ( ) { var e = this . items . length && ( "" == this . secondaryPlaceholder || this . secondaryPlaceholder ) ; return e ? this . placeholder : this . secondaryPlaceholder } , e . prototype . removeAndSelectAdjacentChip = function ( e ) { var n = this . getAdjacentChipIndex ( e ) ; this . removeChip ( e ) , this . $timeout ( t . bind ( this , function ( ) { this . selectAndFocusChipSafe ( n ) } ) ) } , e . prototype . resetSelectedChip = function ( ) { this . selectedChip = - 1 } , e . prototype . getAdjacentChipIndex = function ( e ) { var t = this . items . length - 1 ; return 0 == t ? - 1 : e == t ? e - 1 : e } , e . prototype . appendChip = function ( e ) { if ( this . useTransformChip && this . transformChip ) { var n = this . transformChip ( { $chip : e } ) ; t . isDefined ( n ) && ( e = n ) } if ( t . isObject ( e ) ) { var o = this . items . some ( function ( n ) { return t . equals ( e , n ) } ) ; if ( o ) return } if ( ! ( null == e || this . items . indexOf ( e ) + 1 ) ) { var r = this . items . push ( e ) ; this . useOnAdd && this . onAdd && this . onAdd ( { $chip : e , $index : r } ) } } , e . prototype . useOnAppendExpressi
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 ) { var t = this . getMenus ( ) , n = this . getFocusedMenuIndex ( ) ; - 1 == n && ( n = this . getOpenMenuIndex ( ) ) ; var o = ! 1 ; return - 1 == n ? n = 0 : ( 0 > e && n > 0 || e > 0 && n < t . length - e ) && ( n += e , o = ! 0 ) , o ? ( t [ n ] . querySelector ( "button" ) . focus ( ) , t [ n ] ) : void 0 } , e . prototype . openFocusedMenu = function ( ) { var e = this . getFocusedMenu ( ) ; e && t . element ( e ) . controller ( "mdMenu" ) . open ( ) } , e . prototype . getMenus = function ( ) { var e = this . $element ; return this . $mdUtil . nodesToArray ( e [ 0 ] . children ) . filter ( function ( e ) { return "MD-MENU" == e . nodeName } ) } , e . prototype . getFocusedMenu = function ( ) { return this . getMenus ( ) [ this . getFocusedMenuIndex ( ) ] } , e . prototype . getFocusedMenuIndex = function ( ) { var e = this . $mdUtil , t = e . getClosest ( this . $document [ 0 ] . activeElement , "MD-MENU" ) ; if ( ! t ) return - 1 ; var n = this . getMenus ( ) . indexOf ( t ) ; return n } , e . prototype . getOpenMenuIndex = function ( ) { for ( var e = this . getMenus ( ) , t = 0 ; t < e . length ; ++ t ) if ( e [ t ] . classList . contains ( "md-open" ) ) return t ; return - 1 } } ( ) , function ( ) { function e ( e , n ) { return { restrict : "E" , require : "mdMenuBar" , controller : "MenuBarController" , compile : function ( o , r ) { return r . ariaRole || o [ 0 ] . setAttribute ( "role" , "menubar" ) , t . forEach ( o [ 0 ] . children , function ( n ) { if ( "MD-MENU" == n . nodeName ) { n . hasAttribute ( "md-position-mode" ) || ( n . setAttribute ( "md-position-mode" , "left bottom" ) , n . querySelector ( "button,a" ) . setAttribute ( "role" , "menuitem" ) ) ; var o = e . nodesToArray ( n . querySelectorAll ( "md-menu-content" ) ) ; t . forEach ( o , function ( e ) { e . classList . add ( "md-menu-bar-menu" ) , e . classList . add ( "md-dense" ) , e . hasAttribute ( "width" ) || e . setAttribute ( "width" , 5 ) } ) } } ) , function ( e , t , o , r ) { n ( e , t ) , r . init ( ) } } } } t . module ( "material.components.menuBar" ) . directive ( "mdMenuBar" , e ) , e . $inject = [ "$mdUtil" , "$mdTheming" ] } ( ) , function ( ) { function e ( ) { return { restrict : "E" , compile : function ( e , t ) { t . role || e [ 0 ] . setAttribute ( "role" , "separator" ) } } } t . module ( "material.components.menuBar" ) . directive ( "mdMenuDivider" , e ) } ( ) , function ( ) { function e ( e , t , n ) { this . $element = t , this . $attrs = n , this . $scope = e } t . module ( "material.components.menuBar" ) . controller ( "MenuItemController" , e ) , e . $inject = [ "$scope" , "$element" , "$attrs" ] , e . prototype . init = function ( e ) { var t = this . $element , n = this . $attrs ; this . ngModel = e , ( "checkbox" == n . type || "radio" == n . type ) && ( this . mode = n . type , this . iconEl = t [ 0 ] . children [ 0 ] , this . buttonEl = t [ 0 ] . children [ 1 ] , e && this . initClickListeners ( ) ) } , e . prototype . clearNgAria = function ( ) { var e = this . $element [ 0 ] , n = [ "role" , "tabindex" , "aria-invalid" , "aria-checked" ] ; t . forEach ( n , function ( t ) { e . removeAttribute ( t ) } ) } , e . prototype . initClickListeners = function ( ) { function e ( ) { if ( "radio" == d ) { var e = a . ngValue ? i . $eval ( a . ngValue ) : a . value ; return r . $modelValue == e } return r . $modelValue } function n ( e ) { e ? s . off ( "click" , l ) : s . on ( "click" , l ) } var o = t
} ( ) } ( window , window . angular ) , window . ngMaterial = { version : { full : "1.0.4-master-ad9ba52" } } ;