7 lines
7.2 KiB
JavaScript
7 lines
7.2 KiB
JavaScript
|
|
/*!
|
||
|
|
* AngularJS Material Design
|
||
|
|
* https://github.com/angular/material
|
||
|
|
* @license MIT
|
||
|
|
* v1.1.18-master-97a1616
|
||
|
|
*/
|
||
|
|
!function(t,m,c){"use strict";function e(i,r){return{restrict:"E",transclude:!0,controller:n,controllerAs:"ctrl",bindToController:!0,scope:{mdSelectedNavItem:"=?",mdNoInkBar:"=?",navBarAriaLabel:"@?"},template:'<div class="md-nav-bar"><nav role="navigation"><ul class="_md-nav-bar-list" ng-transclude role="tablist" ng-focus="ctrl.onFocus()" aria-label="{{ctrl.navBarAriaLabel}}"></ul></nav><md-nav-ink-bar ng-hide="ctrl.mdNoInkBar"></md-nav-ink-bar></div>',link:function(t,e,n,a){r(e),a.navBarAriaLabel||i.expectAsync(e,"aria-label",m.noop)}}}function n(t,e,n,a){this._$timeout=n,this._$scope=e,this._$mdConstant=a,this.mdSelectedNavItem,this.navBarAriaLabel,this._navBarEl=t[0],this._inkbar;var i=this,r=this._$scope.$watch(function(){return i._navBarEl.querySelectorAll("._md-nav-button").length},function(t){0<t&&(i._initTabs(),r())})}function a(u,t,d,f){return{restrict:"E",require:["mdNavItem","^mdNavBar"],controller:i,bindToController:!0,controllerAs:"ctrl",replace:!0,transclude:!0,template:function(t,e){var n,a,i=e.mdNavClick,r=e.mdNavHref,o=e.mdNavSref,s=e.srefOpts;if(1<(i?1:0)+(r?1:0)+(o?1:0))throw Error("Please do not specify more than one of the md-nav-click, md-nav-href, or md-nav-sref attributes per nav-item directive.");if(i!==c&&null!==i)n='ng-click="ctrl.mdNavClick()"';else if(r!==c&&null!==r)n='ng-href="{{ctrl.mdNavHref}}"';else{if(o===c||null===o)throw Error("Please specify at least one of the md-nav-click, md-nav-href, or md-nav-sref attributes per nav-item directive.");n='ui-sref="{{ctrl.mdNavSref}}"'}return n&&(a='<md-button class="_md-nav-button md-accent" ng-class="ctrl.getNgClassMap()" ng-blur="ctrl.setFocused(false)" ng-disabled="ctrl.disabled" tabindex="-1" role="tab" ng-attr-aria-label="{{ctrl.navItemAriaLabel ? ctrl.navItemAriaLabel : undefined}}" aria-selected="{{ctrl.isSelected()}}" '+(s?'ui-sref-opts="{{ctrl.srefOpts}}" ':"")+n+'><span ng-transclude class="_md-nav-button-text"></span></md-button>'),'<li class="md-nav-item" role="presentation">'+(a||"")+"</li>"},scope:{mdNavClick:"&?",mdNavHref:"@?",mdNavSref:"@?",srefOpts:"=?",name:"@",navItemAriaLabel:"@?"},link:function(n,a,i,r){var o,s,c,l;t(function(){if(s=r[0],c=r[1],l=m.element(a[0].querySelector("._md-nav-button")),s.name||(s.name=m.element(a[0].querySelector("._md-nav-button-text")).text().trim()),l.on("keydown",function(t){c.onKeydown(t)}),l.on("focus",function(){c.getFocusedTab()||c.onFocus()}),l.on("click",function(){c.mdSelectedNavItem=s.name,n.$apply()}),s.disabled=d.parseAttributeBoolean(i.disabled,!1),"MutationObserver"in f){var t=a[0],e=new MutationObserver(function(t){d.nextTick(function(){s.disabled=d.parseAttributeBoolean(i[t[0].attributeName],!1)})});e.observe(t,{attributes:!0,attributeFilter:["disabled"]}),o=e.disconnect.bind(e)}else i.$observe("disabled",function(t){s.disabled=d.parseAttributeBoolean(t,!1)});s.navItemAriaLabel||u.expectWithText(l,"aria-label")}),n.$on("destroy",function(){l.off("keydown"),l.off("focus"),l.off("click"),o()})}}}function i(t){this._$element=t,this.mdNavClick,this.mdNavHref,this.mdNavSref,this.srefOpts,this.name,this.navItemAriaLabel,this._selected=!1,this._focused=!1}e.$inject=["$mdAria","$mdTheming"],n.$inject=["$element","$scope","$timeout","$mdConstant"],a.$inject=["$mdAria","$$rAF","$mdUtil","$window"],i.$inject=["$element"],m.module("material.components.navBar",["material.core"]).controller("MdNavBarController",n).directive("mdNavBar",e).controller("MdNavItemController",i).directive("mdNavItem",a),n.prototype._initTabs=function(){this._inkbar=m.element(this._navBarEl.querySelector("md-nav-ink-bar"));var n=this;this._$timeout(function(){n._updateTabs(n.mdSelectedNavItem,c)}),this._$scope.$watch("ctrl.mdSelectedNavItem",function(t,e){n._$timeout(function(){n._updateTabs(t,e)})})},n.prototype._updateTabs=function(t,e){var n=this,a=this._getTabs(),i=t===e;if(a){var r=-1,o=-1,s=this._getTabByName(t),c=this._getTabByName(e);c&&(c.setSelected(!1),r=a.indexOf(c)),s&&(s.setSelected(!0),o=a.indexOf(s)),this._$timeout(function(){n._updateInkBarStyles(s,o,r),s&&c&&!i&&n._moveFocus(c,s)})}},n.prototype._upd
|