text: /*!
   * Angular Material Design
   * https://github.com/angular/material
   * @license MIT
   * v0.9.0
   */
  !function(){"use strict";function e(){function e(e,t,a,n){function s(){function e(){return a.label}function n(){var e=t.find("md-tab-label");return e.length?e.remove().html():void 0}function s(){var e=t.html();return t.empty(),e}a.label||(t.find("md-tab-label")[0]||t[0]).innerHTML;return e()||n()||s()}function d(){var e=t.find("md-tab-body"),n=e.length?e.html():a.label?t.html():null;return e.length?e.remove():a.label&&t.empty(),n}if(n){var r=t.parent()[0].getElementsByTagName("md-tab"),i=Array.prototype.indexOf.call(r,t[0]),l=n.insertTab({scope:e,parent:e.$parent,index:i,template:d(),label:s()},i);e.select=e.select||angular.noop,e.deselect=e.deselect||angular.noop,e.$watch("active",function(e){e&&n.select(l.getIndex())}),e.$watch("disabled",function(){n.refreshIndex()}),e.$on("$destroy",function(){n.removeTab(l)})}}return{require:"^?mdTabs",terminal:!0,scope:{label:"@",active:"=?mdActive",disabled:"=?ngDisabled",select:"&?mdOnSelect",deselect:"&?mdOnDeselect"},link:e}}function t(){function e(e,t,a,n){n&&n.attachRipple(e,t)}return{require:"^?mdTabs",link:e}}function a(e){return{restrict:"A",compile:function(t,a){var n=e(a.mdTabScroll,null,!0);return function(e,t){t.on("mousewheel",function(t){e.$apply(function(){n(e,{$event:t})})})}}}}function n(e,t,a,n,s,d,r,i){function l(){e.$watch("selectedIndex",I),e.$watch("$mdTabsCtrl.focusIndex",u),e.$watch("$mdTabsCtrl.offsetLeft",b),e.$watch("$mdTabsCtrl.hasContent",c),angular.element(a).on("resize",function(){e.$apply(h)}),n(k,0,!1),n(y,0,!1)}function c(e){t[e?"removeClass":"addClass"]("md-no-tab-content")}function o(){var e={};return e.wrapper=t[0].getElementsByTagName("md-tabs-wrapper")[0],e.canvas=e.wrapper.getElementsByTagName("md-tabs-canvas")[0],e.paging=e.canvas.getElementsByTagName("md-pagination-wrapper")[0],e.tabs=e.paging.getElementsByTagName("md-tab-item"),e.dummies=e.canvas.getElementsByTagName("md-dummy-tab"),e.inkBar=e.paging.getElementsByTagName("md-ink-bar")[0],e.contentsWrapper=t[0].getElementsByTagName("md-tabs-content-wrapper")[0],e.contents=e.contentsWrapper.getElementsByTagName("md-tab-content"),e}function m(t){switch(t.keyCode){case s.KEY_CODE.LEFT_ARROW:t.preventDefault(),f(-1,!0);break;case s.KEY_CODE.RIGHT_ARROW:t.preventDefault(),f(1,!0);break;case s.KEY_CODE.SPACE:case s.KEY_CODE.ENTER:t.preventDefault(),_||(e.selectedIndex=M.focusIndex)}M.lastClick=!1}function f(t,a){var n,s=a?M.focusIndex:e.selectedIndex;for(n=s+t;M.tabs[n]&&M.tabs[n].scope.disabled;n+=t);M.tabs[n]&&(a?M.focusIndex=n:e.selectedIndex=n)}function b(t){var a=B()?"":"-"+t+"px";angular.element(j.paging).css("left",a),e.$broadcast("$mdTabsPaginationChanged")}function u(e,t){e!==t&&j.tabs[e]&&(g(),p())}function p(){j.dummies[M.focusIndex].focus()}function g(){if(!B()){var e=j.tabs[M.focusIndex],t=e.offsetLeft,a=e.offsetWidth+t;M.offsetLeft=Math.max(M.offsetLeft,D(a-j.canvas.clientWidth)),M.offsetLeft=Math.min(M.offsetLeft,D(t))}}function h(){M.lastSelectedIndex=e.selectedIndex,M.offsetLeft=D(M.offsetLeft),n(k,0,!1)}function T(){K.forEach(function(e){n(e)}),K=[]}function x(t,a){var n={getIndex:function(){return M.tabs.indexOf(s)},isActive:function(){return this.getIndex()===e.selectedIndex},isLeft:function(){return this.getIndex()<e.selectedIndex},isRight:function(){return this.getIndex()>e.selectedIndex},hasFocus:function(){return!M.lastClick&&M.hasFocus&&this.getIndex()===M.focusIndex},id:r.nextUid()},s=angular.extend(n,t);return angular.isDefined(a)?M.tabs.splice(a,0,s):M.tabs.push(s),T(),v(),s}function v(){var e=!1;angular.forEach(M.tabs,function(t){t.template&&(e=!0)}),M.hasContent=e}function $(e){M.tabs.splice(e.getIndex(),1),C(),n(function(){k(),M.offsetLeft=D(M.offsetLeft)})}function C(){e.selectedIndex=P(e.selectedIndex),M.focusIndex=P(M.focusIndex)}function I(t,a){t!==a&&(e.selectedIndex=P(t),M.lastSelectedIndex=a,k(),y(),e.$broadcast("$mdTabsChanged"),M.tabs[a]&&M.tabs[a].scope.deselect(),M.tabs[t]&&M.tabs[t].scope.select())}function w(){w.watcher||(w.watcher=e.$watch(function(){n(function(){w.watcher&&t.prop("offsetParent")&&(w.watcher(),w.watcher=null,e.$apply(h))},0,!1)}))}function y(){if(!e.dynamicHeight)return t.css("height","");if(!M.tabs.length)return K.push(y);var a=j.contents[e.selectedIndex],n=a?a.offsetHeight:0,s=j.wrapper.offsetHeight,d=n+s,r=t.prop("clientHeight");r!==d&&(_=!0,i.animate(t,{height:r+"px"},{height:d+"px"}).then(function(){t.css("height",""),_=!1}))}function k(){if(!M.tabs.length)return K.push(k);if(!t.prop("offsetParent"))return w();var a=e.selectedIndex,n=j.paging.offsetWidth,s=j.tabs[a],d=s.offsetLeft,r=n-d-s.offsetWidth;L(),angular.element(j.inkBar).css({left:d+"px",right:r+"px"})}function L(){var t=e.selectedIndex,a=M.lastSelectedIndex,n=angular.element(j.inkBar);n.removeClass("md-left md-right"),angular.isNumber(a)&&(a>t?n.addClass("md-left"):t>a&&n.addClass("md-right"))}function P(e){var t,a,n=Math.max(M.tabs.length-e,e);for(t=0;n>=t;t++){if(a=M.tabs[e+t],a&&a.scope.disabled!==!0)return a.getIndex();if(a=M.tabs[e-t],a&&a.scope.disabled!==!0)return a.getIndex()}return e}function E(){switch(e.stretchTabs){case"always":return!0;case"never":return!1;default:return!W()&&a.matchMedia("(max-width: 600px)").matches}}function B(){return e.centerTabs&&!W()}function W(){if(e.noPagination)return!1;var a=t.prop("clientWidth");return angular.forEach(j.tabs,function(e){a-=e.offsetWidth}),0>a}function S(t){_||(M.focusIndex=e.selectedIndex=t),M.lastClick=!0}function N(e){W()&&(e.preventDefault(),M.offsetLeft=D(M.offsetLeft-e.wheelDelta))}function D(e){if(!j.tabs.length||!W())return 0;var t=j.tabs[j.tabs.length-1],a=t.offsetLeft+t.offsetWidth;return e=Math.max(0,e),e=Math.min(a-j.canvas.clientWidth,e)}function A(){var e,t,a=j.canvas.clientWidth,n=a+M.offsetLeft;for(e=0;e<j.tabs.length&&(t=j.tabs[e],!(t.offsetLeft+t.offsetWidth>n));e++);M.offsetLeft=D(t.offsetLeft)}function F(){var e,t;for(e=0;e<j.tabs.length&&(t=j.tabs[e],!(t.offsetLeft+t.offsetWidth>=M.offsetLeft));e++);M.offsetLeft=D(t.offsetLeft+t.offsetWidth-j.canvas.clientWidth)}function O(){return M.offsetLeft>0}function R(){var e=j.tabs[j.tabs.length-1];return e&&e.offsetLeft+e.offsetWidth>j.canvas.clientWidth+M.offsetLeft}function H(e,t){var a={colorElement:angular.element(j.inkBar)};d.attachTabBehavior(e,t,a)}var M=this,_=!1,j=o(),K=[];M.scope=e,M.parent=e.$parent,M.tabs=[],M.lastSelectedIndex=null,M.focusIndex=0,M.offsetLeft=0,M.hasContent=!1,M.hasFocus=!1,M.lastClick=!1,M.redirectFocus=p,M.attachRipple=H,M.shouldStretchTabs=E,M.shouldPaginate=W,M.shouldCenterTabs=B,M.insertTab=x,M.removeTab=$,M.select=S,M.scroll=N,M.nextPage=A,M.previousPage=F,M.keydown=m,M.canPageForward=R,M.canPageBack=O,M.refreshIndex=C,M.incrementSelectedIndex=f,M.updateInkBarStyles=k,l()}function s(e,t,a){return{scope:{noPagination:"=?mdNoPagination",dynamicHeight:"=?mdDynamicHeight",centerTabs:"=?mdCenterTabs",selectedIndex:"=?mdSelected",stretchTabs:"@?mdStretchTabs"},template:function(e,t){return t.$mdTabsTemplate=e.html(),'        <md-tabs-wrapper ng-class="{ \'md-stretch-tabs\': $mdTabsCtrl.shouldStretchTabs() }">          <md-tab-data></md-tab-data>          <md-prev-button              tabindex="-1"              role="button"              aria-label="Previous Page"              aria-disabled="{{!$mdTabsCtrl.canPageBack()}}"              ng-class="{ \'md-disabled\': !$mdTabsCtrl.canPageBack() }"              ng-if="$mdTabsCtrl.shouldPaginate()"              ng-click="$mdTabsCtrl.previousPage()">            <md-icon md-svg-icon="md-tabs-arrow"></md-icon>          </md-prev-button>          <md-next-button              tabindex="-1"              role="button"              aria-label="Next Page"              aria-disabled="{{!$mdTabsCtrl.canPageForward()}}"              ng-class="{ \'md-disabled\': !$mdTabsCtrl.canPageForward() }"              ng-if="$mdTabsCtrl.shouldPaginate()"              ng-click="$mdTabsCtrl.nextPage()">            <md-icon md-svg-icon="md-tabs-arrow"></md-icon>          </md-next-button>          <md-tabs-canvas              tabindex="0"              aria-activedescendant="tab-item-{{$mdTabsCtrl.tabs[$mdTabsCtrl.focusIndex].id}}"              ng-focus="$mdTabsCtrl.redirectFocus()"              ng-class="{                  \'md-paginated\': $mdTabsCtrl.shouldPaginate(),                  \'md-center-tabs\': $mdTabsCtrl.shouldCenterTabs()              }"              ng-keydown="$mdTabsCtrl.keydown($event)"              role="tablist">            <md-pagination-wrapper                ng-class="{ \'md-center-tabs\': $mdTabsCtrl.shouldCenterTabs() }"                md-tab-scroll="$mdTabsCtrl.scroll($event)">              <md-tab-item                  tabindex="-1"                  class="md-tab"                  style="max-width: {{ tabWidth ? tabWidth + \'px\' : \'none\' }}"                  ng-repeat="tab in $mdTabsCtrl.tabs"                  role="tab"                  aria-controls="tab-content-{{tab.id}}"                  aria-selected="{{tab.isActive()}}"                  aria-disabled="{{tab.scope.disabled || \'false\'}}"                  ng-click="$mdTabsCtrl.select(tab.getIndex())"                  ng-class="{                      \'md-active\':    tab.isActive(),                      \'md-focused\':   tab.hasFocus(),                      \'md-disabled\':  tab.scope.disabled                  }"                  ng-disabled="tab.scope.disabled"                  md-swipe-left="$mdTabsCtrl.nextPage()"                  md-swipe-right="$mdTabsCtrl.previousPage()"                  md-template="tab.label"                  md-scope="tab.parent"></md-tab-item>              <md-ink-bar ng-hide="noInkBar"></md-ink-bar>            </md-pagination-wrapper>            <div class="md-visually-hidden md-dummy-wrapper">              <md-dummy-tab                  tabindex="-1"                  id="tab-item-{{tab.id}}"                  role="tab"                  aria-controls="tab-content-{{tab.id}}"                  aria-selected="{{tab.isActive()}}"                  aria-disabled="{{tab.scope.disabled || \'false\'}}"                  ng-focus="$mdTabsCtrl.hasFocus = true"                  ng-blur="$mdTabsCtrl.hasFocus = false"                  ng-repeat="tab in $mdTabsCtrl.tabs"                  md-template="tab.label"                  md-scope="tab.parent"></md-dummy-tab>            </div>          </md-tabs-canvas>        </md-tabs-wrapper>        <md-tabs-content-wrapper ng-show="$mdTabsCtrl.hasContent">          <md-tab-content              id="tab-content-{{tab.id}}"              role="tabpanel"              aria-labelledby="tab-item-{{tab.id}}"              md-swipe-left="$mdTabsCtrl.incrementSelectedIndex(1)"              md-swipe-right="$mdTabsCtrl.incrementSelectedIndex(-1)"              ng-if="$mdTabsCtrl.hasContent"              ng-repeat="(index, tab) in $mdTabsCtrl.tabs"               md-template="tab.template"              md-scope="tab.parent"              ng-class="{                \'md-no-transition\': $mdTabsCtrl.lastSelectedIndex == null,                \'md-active\':        tab.isActive(),                \'md-left\':          tab.isLeft(),                \'md-right\':         tab.isRight(),                \'md-no-scroll\':     dynamicHeight              }"></md-tab-content>        </md-tabs-content-wrapper>      '},controller:"MdTabsController",controllerAs:"$mdTabsCtrl",link:function(n,s,d){function r(e){var t=s.find("md-tab-data");t.html(e),a(t.contents())(n.$parent)}r(d.$mdTabsTemplate),delete d.$mdTabsTemplate,t.initOptionalProperties(n,d),d.$observe("mdNoBar",function(e){n.noInkBar=angular.isDefined(e)}),n.selectedIndex=angular.isNumber(n.selectedIndex)?n.selectedIndex:0,e(s)}}}function d(e){function t(t,a,n,s){s&&(a.html(t.template),e(a.contents())(t.compileScope))}return{restrict:"A",link:t,scope:{template:"=mdTemplate",compileScope:"=mdScope"},require:"^?mdTabs"}}angular.module("material.components.tabs",["material.core","material.components.icon"]),angular.module("material.components.tabs").directive("mdTab",e),angular.module("material.components.tabs").directive("mdTabItem",t),angular.module("material.components.tabs").directive("mdTabScroll",a),a.$inject=["$parse"],angular.module("material.components.tabs").controller("MdTabsController",n),n.$inject=["$scope","$element","$window","$timeout","$mdConstant","$mdInkRipple","$mdUtil","$animate"],angular.module("material.components.tabs").directive("mdTabs",s),s.$inject=["$mdTheming","$mdUtil","$compile"],angular.module("material.components.tabs").directive("mdTemplate",d),d.$inject=["$compile"]}();