mirror of
https://github.com/arnaucube/socketioMEANseed.git
synced 2026-02-07 19:56:46 +01:00
init
This commit is contained in:
16
www/bower_components/angular-material/modules/closure/navBar/navBar-default-theme.css
vendored
Normal file
16
www/bower_components/angular-material/modules/closure/navBar/navBar-default-theme.css
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.3
|
||||
*/
|
||||
md-nav-bar.md-THEME_NAME-theme .md-nav-bar {
|
||||
background-color: transparent;
|
||||
border-color: '{{foreground-4}}'; }
|
||||
|
||||
md-nav-bar.md-THEME_NAME-theme .md-button._md-nav-button.md-unselected {
|
||||
color: '{{foreground-2}}'; }
|
||||
|
||||
md-nav-bar.md-THEME_NAME-theme md-nav-ink-bar {
|
||||
color: '{{accent-color}}';
|
||||
background: '{{accent-color}}'; }
|
||||
6
www/bower_components/angular-material/modules/closure/navBar/navBar-default-theme.min.css
vendored
Normal file
6
www/bower_components/angular-material/modules/closure/navBar/navBar-default-theme.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.2-master-a9ba340
|
||||
*/md-nav-bar.md-THEME_NAME-theme .md-nav-bar{background-color:transparent;border-color:"{{foreground-4}}"}md-nav-bar.md-THEME_NAME-theme .md-button._md-nav-button.md-unselected{color:"{{foreground-2}}"}md-nav-bar.md-THEME_NAME-theme md-nav-ink-bar{color:"{{accent-color}}";background:"{{accent-color}}"}
|
||||
61
www/bower_components/angular-material/modules/closure/navBar/navBar.css
vendored
Normal file
61
www/bower_components/angular-material/modules/closure/navBar/navBar.css
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.3
|
||||
*/
|
||||
/** Matches "md-tabs md-tabs-wrapper" style. */
|
||||
.md-nav-bar {
|
||||
border-style: solid;
|
||||
border-width: 0 0 1px;
|
||||
height: 48px;
|
||||
position: relative; }
|
||||
|
||||
._md-nav-bar-list {
|
||||
outline: none;
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
-webkit-box-orient: horizontal;
|
||||
-webkit-box-direction: normal;
|
||||
-webkit-flex-direction: row;
|
||||
flex-direction: row; }
|
||||
|
||||
.md-nav-item:first-of-type {
|
||||
margin-left: 8px; }
|
||||
|
||||
.md-button._md-nav-button {
|
||||
line-height: 24px;
|
||||
margin: 0 4px;
|
||||
padding: 12px 16px;
|
||||
-webkit-transition: background-color 0.35s cubic-bezier(0.35, 0, 0.25, 1);
|
||||
transition: background-color 0.35s cubic-bezier(0.35, 0, 0.25, 1); }
|
||||
.md-button._md-nav-button:focus {
|
||||
outline: none; }
|
||||
.md-button._md-nav-button:hover {
|
||||
background-color: inherit; }
|
||||
|
||||
md-nav-ink-bar {
|
||||
bottom: 0;
|
||||
height: 2px;
|
||||
left: auto;
|
||||
position: absolute;
|
||||
right: auto;
|
||||
background-color: black; }
|
||||
md-nav-ink-bar._md-left {
|
||||
-webkit-transition: left 0.125s cubic-bezier(0.35, 0, 0.25, 1), right 0.25s cubic-bezier(0.35, 0, 0.25, 1);
|
||||
transition: left 0.125s cubic-bezier(0.35, 0, 0.25, 1), right 0.25s cubic-bezier(0.35, 0, 0.25, 1); }
|
||||
md-nav-ink-bar._md-right {
|
||||
-webkit-transition: left 0.25s cubic-bezier(0.35, 0, 0.25, 1), right 0.125s cubic-bezier(0.35, 0, 0.25, 1);
|
||||
transition: left 0.25s cubic-bezier(0.35, 0, 0.25, 1), right 0.125s cubic-bezier(0.35, 0, 0.25, 1); }
|
||||
md-nav-ink-bar.ng-animate {
|
||||
-webkit-transition: none;
|
||||
transition: none; }
|
||||
|
||||
md-nav-extra-content {
|
||||
min-height: 48px;
|
||||
padding-right: 12px; }
|
||||
588
www/bower_components/angular-material/modules/closure/navBar/navBar.js
vendored
Normal file
588
www/bower_components/angular-material/modules/closure/navBar/navBar.js
vendored
Normal file
@@ -0,0 +1,588 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.3
|
||||
*/
|
||||
goog.provide('ngmaterial.components.navBar');
|
||||
goog.require('ngmaterial.core');
|
||||
/**
|
||||
* @ngdoc module
|
||||
* @name material.components.navBar
|
||||
*/
|
||||
|
||||
|
||||
MdNavBarController['$inject'] = ["$element", "$scope", "$timeout", "$mdConstant"];
|
||||
MdNavItem['$inject'] = ["$mdAria", "$$rAF"];
|
||||
MdNavItemController['$inject'] = ["$element"];
|
||||
MdNavBar['$inject'] = ["$mdAria", "$mdTheming"];
|
||||
angular.module('material.components.navBar', ['material.core'])
|
||||
.controller('MdNavBarController', MdNavBarController)
|
||||
.directive('mdNavBar', MdNavBar)
|
||||
.controller('MdNavItemController', MdNavItemController)
|
||||
.directive('mdNavItem', MdNavItem);
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* PUBLIC DOCUMENTATION *
|
||||
*****************************************************************************/
|
||||
/**
|
||||
* @ngdoc directive
|
||||
* @name mdNavBar
|
||||
* @module material.components.navBar
|
||||
*
|
||||
* @restrict E
|
||||
*
|
||||
* @description
|
||||
* The `<md-nav-bar>` directive renders a list of material tabs that can be used
|
||||
* for top-level page navigation. Unlike `<md-tabs>`, it has no concept of a tab
|
||||
* body and no bar pagination.
|
||||
*
|
||||
* Because it deals with page navigation, certain routing concepts are built-in.
|
||||
* Route changes via via ng-href, ui-sref, or ng-click events are supported.
|
||||
* Alternatively, the user could simply watch currentNavItem for changes.
|
||||
*
|
||||
* Accessibility functionality is implemented as a site navigator with a
|
||||
* listbox, according to
|
||||
* https://www.w3.org/TR/wai-aria-practices/#Site_Navigator_Tabbed_Style
|
||||
*
|
||||
* @param {string=} mdSelectedNavItem The name of the current tab; this must
|
||||
* match the name attribute of `<md-nav-item>`
|
||||
* @param {boolean=} mdNoInkBar If set to true, the ink bar will be hidden.
|
||||
* @param {string=} navBarAriaLabel An aria-label for the nav-bar
|
||||
*
|
||||
* @usage
|
||||
* <hljs lang="html">
|
||||
* <md-nav-bar md-selected-nav-item="currentNavItem">
|
||||
* <md-nav-item md-nav-click="goto('page1')" name="page1">
|
||||
* Page One
|
||||
* </md-nav-item>
|
||||
* <md-nav-item md-nav-href="#page2" name="page3">Page Two</md-nav-item>
|
||||
* <md-nav-item md-nav-sref="page3" name="page2">Page Three</md-nav-item>
|
||||
* <md-nav-item
|
||||
* md-nav-sref="app.page4"
|
||||
* sref-opts="{reload: true, notify: true}"
|
||||
* name="page4">
|
||||
* Page Four
|
||||
* </md-nav-item>
|
||||
* </md-nav-bar>
|
||||
*</hljs>
|
||||
* <hljs lang="js">
|
||||
* (function() {
|
||||
* 'use strict';
|
||||
*
|
||||
* $rootScope.$on('$routeChangeSuccess', function(event, current) {
|
||||
* $scope.currentLink = getCurrentLinkFromRoute(current);
|
||||
* });
|
||||
* });
|
||||
* </hljs>
|
||||
*/
|
||||
|
||||
/*****************************************************************************
|
||||
* mdNavItem
|
||||
*****************************************************************************/
|
||||
/**
|
||||
* @ngdoc directive
|
||||
* @name mdNavItem
|
||||
* @module material.components.navBar
|
||||
*
|
||||
* @restrict E
|
||||
*
|
||||
* @description
|
||||
* `<md-nav-item>` describes a page navigation link within the `<md-nav-bar>`
|
||||
* component. It renders an md-button as the actual link.
|
||||
*
|
||||
* Exactly one of the mdNavClick, mdNavHref, mdNavSref attributes are required
|
||||
* to be specified.
|
||||
*
|
||||
* @param {Function=} mdNavClick Function which will be called when the
|
||||
* link is clicked to change the page. Renders as an `ng-click`.
|
||||
* @param {string=} mdNavHref url to transition to when this link is clicked.
|
||||
* Renders as an `ng-href`.
|
||||
* @param {string=} mdNavSref Ui-router state to transition to when this link is
|
||||
* clicked. Renders as a `ui-sref`.
|
||||
* @param {!Object=} srefOpts Ui-router options that are passed to the
|
||||
* `$state.go()` function. See the [Ui-router documentation for details]
|
||||
* (https://ui-router.github.io/docs/latest/interfaces/transition.transitionoptions.html).
|
||||
* @param {string=} name The name of this link. Used by the nav bar to know
|
||||
* which link is currently selected.
|
||||
* @param {string=} aria-label Adds alternative text for accessibility
|
||||
*
|
||||
* @usage
|
||||
* See `<md-nav-bar>` for usage.
|
||||
*/
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* IMPLEMENTATION *
|
||||
*****************************************************************************/
|
||||
|
||||
function MdNavBar($mdAria, $mdTheming) {
|
||||
return {
|
||||
restrict: 'E',
|
||||
transclude: true,
|
||||
controller: MdNavBarController,
|
||||
controllerAs: 'ctrl',
|
||||
bindToController: true,
|
||||
scope: {
|
||||
'mdSelectedNavItem': '=?',
|
||||
'mdNoInkBar': '=?',
|
||||
'navBarAriaLabel': '@?',
|
||||
},
|
||||
template:
|
||||
'<div class="md-nav-bar">' +
|
||||
'<nav role="navigation">' +
|
||||
'<ul class="_md-nav-bar-list" ng-transclude role="listbox"' +
|
||||
'tabindex="0"' +
|
||||
'ng-focus="ctrl.onFocus()"' +
|
||||
'ng-keydown="ctrl.onKeydown($event)"' +
|
||||
'aria-label="{{ctrl.navBarAriaLabel}}">' +
|
||||
'</ul>' +
|
||||
'</nav>' +
|
||||
'<md-nav-ink-bar ng-hide="ctrl.mdNoInkBar"></md-nav-ink-bar>' +
|
||||
'</div>',
|
||||
link: function(scope, element, attrs, ctrl) {
|
||||
$mdTheming(element);
|
||||
if (!ctrl.navBarAriaLabel) {
|
||||
$mdAria.expectAsync(element, 'aria-label', angular.noop);
|
||||
}
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Controller for the nav-bar component.
|
||||
*
|
||||
* Accessibility functionality is implemented as a site navigator with a
|
||||
* listbox, according to
|
||||
* https://www.w3.org/TR/wai-aria-practices/#Site_Navigator_Tabbed_Style
|
||||
* @param {!angular.JQLite} $element
|
||||
* @param {!angular.Scope} $scope
|
||||
* @param {!angular.Timeout} $timeout
|
||||
* @param {!Object} $mdConstant
|
||||
* @constructor
|
||||
* @final
|
||||
* ngInject
|
||||
*/
|
||||
function MdNavBarController($element, $scope, $timeout, $mdConstant) {
|
||||
// Injected variables
|
||||
/** @private @const {!angular.Timeout} */
|
||||
this._$timeout = $timeout;
|
||||
|
||||
/** @private @const {!angular.Scope} */
|
||||
this._$scope = $scope;
|
||||
|
||||
/** @private @const {!Object} */
|
||||
this._$mdConstant = $mdConstant;
|
||||
|
||||
// Data-bound variables.
|
||||
/** @type {string} */
|
||||
this.mdSelectedNavItem;
|
||||
|
||||
/** @type {string} */
|
||||
this.navBarAriaLabel;
|
||||
|
||||
// State variables.
|
||||
|
||||
/** @type {?angular.JQLite} */
|
||||
this._navBarEl = $element[0];
|
||||
|
||||
/** @type {?angular.JQLite} */
|
||||
this._inkbar;
|
||||
|
||||
var self = this;
|
||||
// need to wait for transcluded content to be available
|
||||
var deregisterTabWatch = this._$scope.$watch(function() {
|
||||
return self._navBarEl.querySelectorAll('._md-nav-button').length;
|
||||
},
|
||||
function(newLength) {
|
||||
if (newLength > 0) {
|
||||
self._initTabs();
|
||||
deregisterTabWatch();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Initializes the tab components once they exist.
|
||||
* @private
|
||||
*/
|
||||
MdNavBarController.prototype._initTabs = function() {
|
||||
this._inkbar = angular.element(this._navBarEl.querySelector('md-nav-ink-bar'));
|
||||
|
||||
var self = this;
|
||||
this._$timeout(function() {
|
||||
self._updateTabs(self.mdSelectedNavItem, undefined);
|
||||
});
|
||||
|
||||
this._$scope.$watch('ctrl.mdSelectedNavItem', function(newValue, oldValue) {
|
||||
// Wait a digest before update tabs for products doing
|
||||
// anything dynamic in the template.
|
||||
self._$timeout(function() {
|
||||
self._updateTabs(newValue, oldValue);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Set the current tab to be selected.
|
||||
* @param {string|undefined} newValue New current tab name.
|
||||
* @param {string|undefined} oldValue Previous tab name.
|
||||
* @private
|
||||
*/
|
||||
MdNavBarController.prototype._updateTabs = function(newValue, oldValue) {
|
||||
var self = this;
|
||||
var tabs = this._getTabs();
|
||||
|
||||
// this._getTabs can return null if nav-bar has not yet been initialized
|
||||
if(!tabs)
|
||||
return;
|
||||
|
||||
var oldIndex = -1;
|
||||
var newIndex = -1;
|
||||
var newTab = this._getTabByName(newValue);
|
||||
var oldTab = this._getTabByName(oldValue);
|
||||
|
||||
if (oldTab) {
|
||||
oldTab.setSelected(false);
|
||||
oldIndex = tabs.indexOf(oldTab);
|
||||
}
|
||||
|
||||
if (newTab) {
|
||||
newTab.setSelected(true);
|
||||
newIndex = tabs.indexOf(newTab);
|
||||
}
|
||||
|
||||
this._$timeout(function() {
|
||||
self._updateInkBarStyles(newTab, newIndex, oldIndex);
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Repositions the ink bar to the selected tab.
|
||||
* @private
|
||||
*/
|
||||
MdNavBarController.prototype._updateInkBarStyles = function(tab, newIndex, oldIndex) {
|
||||
this._inkbar.toggleClass('_md-left', newIndex < oldIndex)
|
||||
.toggleClass('_md-right', newIndex > oldIndex);
|
||||
|
||||
this._inkbar.css({display: newIndex < 0 ? 'none' : ''});
|
||||
|
||||
if (tab) {
|
||||
var tabEl = tab.getButtonEl();
|
||||
var left = tabEl.offsetLeft;
|
||||
|
||||
this._inkbar.css({left: left + 'px', width: tabEl.offsetWidth + 'px'});
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns an array of the current tabs.
|
||||
* @return {!Array<!NavItemController>}
|
||||
* @private
|
||||
*/
|
||||
MdNavBarController.prototype._getTabs = function() {
|
||||
var controllers = Array.prototype.slice.call(
|
||||
this._navBarEl.querySelectorAll('.md-nav-item'))
|
||||
.map(function(el) {
|
||||
return angular.element(el).controller('mdNavItem')
|
||||
});
|
||||
return controllers.indexOf(undefined) ? controllers : null;
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns the tab with the specified name.
|
||||
* @param {string} name The name of the tab, found in its name attribute.
|
||||
* @return {!NavItemController|undefined}
|
||||
* @private
|
||||
*/
|
||||
MdNavBarController.prototype._getTabByName = function(name) {
|
||||
return this._findTab(function(tab) {
|
||||
return tab.getName() == name;
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns the selected tab.
|
||||
* @return {!NavItemController|undefined}
|
||||
* @private
|
||||
*/
|
||||
MdNavBarController.prototype._getSelectedTab = function() {
|
||||
return this._findTab(function(tab) {
|
||||
return tab.isSelected();
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns the focused tab.
|
||||
* @return {!NavItemController|undefined}
|
||||
*/
|
||||
MdNavBarController.prototype.getFocusedTab = function() {
|
||||
return this._findTab(function(tab) {
|
||||
return tab.hasFocus();
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* Find a tab that matches the specified function.
|
||||
* @private
|
||||
*/
|
||||
MdNavBarController.prototype._findTab = function(fn) {
|
||||
var tabs = this._getTabs();
|
||||
for (var i = 0; i < tabs.length; i++) {
|
||||
if (fn(tabs[i])) {
|
||||
return tabs[i];
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
/**
|
||||
* Direct focus to the selected tab when focus enters the nav bar.
|
||||
*/
|
||||
MdNavBarController.prototype.onFocus = function() {
|
||||
var tab = this._getSelectedTab();
|
||||
if (tab) {
|
||||
tab.setFocused(true);
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Move focus from oldTab to newTab.
|
||||
* @param {!NavItemController} oldTab
|
||||
* @param {!NavItemController} newTab
|
||||
* @private
|
||||
*/
|
||||
MdNavBarController.prototype._moveFocus = function(oldTab, newTab) {
|
||||
oldTab.setFocused(false);
|
||||
newTab.setFocused(true);
|
||||
};
|
||||
|
||||
/**
|
||||
* Responds to keypress events.
|
||||
* @param {!Event} e
|
||||
*/
|
||||
MdNavBarController.prototype.onKeydown = function(e) {
|
||||
var keyCodes = this._$mdConstant.KEY_CODE;
|
||||
var tabs = this._getTabs();
|
||||
var focusedTab = this.getFocusedTab();
|
||||
if (!focusedTab) return;
|
||||
|
||||
var focusedTabIndex = tabs.indexOf(focusedTab);
|
||||
|
||||
// use arrow keys to navigate between tabs
|
||||
switch (e.keyCode) {
|
||||
case keyCodes.UP_ARROW:
|
||||
case keyCodes.LEFT_ARROW:
|
||||
if (focusedTabIndex > 0) {
|
||||
this._moveFocus(focusedTab, tabs[focusedTabIndex - 1]);
|
||||
}
|
||||
break;
|
||||
case keyCodes.DOWN_ARROW:
|
||||
case keyCodes.RIGHT_ARROW:
|
||||
if (focusedTabIndex < tabs.length - 1) {
|
||||
this._moveFocus(focusedTab, tabs[focusedTabIndex + 1]);
|
||||
}
|
||||
break;
|
||||
case keyCodes.SPACE:
|
||||
case keyCodes.ENTER:
|
||||
// timeout to avoid a "digest already in progress" console error
|
||||
this._$timeout(function() {
|
||||
focusedTab.getButtonEl().click();
|
||||
});
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* ngInject
|
||||
*/
|
||||
function MdNavItem($mdAria, $$rAF) {
|
||||
return {
|
||||
restrict: 'E',
|
||||
require: ['mdNavItem', '^mdNavBar'],
|
||||
controller: MdNavItemController,
|
||||
bindToController: true,
|
||||
controllerAs: 'ctrl',
|
||||
replace: true,
|
||||
transclude: true,
|
||||
template: function(tElement, tAttrs) {
|
||||
var hasNavClick = tAttrs.mdNavClick;
|
||||
var hasNavHref = tAttrs.mdNavHref;
|
||||
var hasNavSref = tAttrs.mdNavSref;
|
||||
var hasSrefOpts = tAttrs.srefOpts;
|
||||
var navigationAttribute;
|
||||
var navigationOptions;
|
||||
var buttonTemplate;
|
||||
|
||||
// Cannot specify more than one nav attribute
|
||||
if ((hasNavClick ? 1:0) + (hasNavHref ? 1:0) + (hasNavSref ? 1:0) > 1) {
|
||||
throw Error(
|
||||
'Must not specify more than one of the md-nav-click, md-nav-href, ' +
|
||||
'or md-nav-sref attributes per nav-item directive.'
|
||||
);
|
||||
}
|
||||
|
||||
if (hasNavClick) {
|
||||
navigationAttribute = 'ng-click="ctrl.mdNavClick()"';
|
||||
} else if (hasNavHref) {
|
||||
navigationAttribute = 'ng-href="{{ctrl.mdNavHref}}"';
|
||||
} else if (hasNavSref) {
|
||||
navigationAttribute = 'ui-sref="{{ctrl.mdNavSref}}"';
|
||||
}
|
||||
|
||||
navigationOptions = hasSrefOpts ? 'ui-sref-opts="{{ctrl.srefOpts}}" ' : '';
|
||||
|
||||
if (navigationAttribute) {
|
||||
buttonTemplate = '' +
|
||||
'<md-button class="_md-nav-button md-accent" ' +
|
||||
'ng-class="ctrl.getNgClassMap()" ' +
|
||||
'ng-blur="ctrl.setFocused(false)" ' +
|
||||
'tabindex="-1" ' +
|
||||
navigationOptions +
|
||||
navigationAttribute + '>' +
|
||||
'<span ng-transclude class="_md-nav-button-text"></span>' +
|
||||
'</md-button>';
|
||||
}
|
||||
|
||||
return '' +
|
||||
'<li class="md-nav-item" ' +
|
||||
'role="option" ' +
|
||||
'aria-selected="{{ctrl.isSelected()}}">' +
|
||||
(buttonTemplate || '') +
|
||||
'</li>';
|
||||
},
|
||||
scope: {
|
||||
'mdNavClick': '&?',
|
||||
'mdNavHref': '@?',
|
||||
'mdNavSref': '@?',
|
||||
'srefOpts': '=?',
|
||||
'name': '@',
|
||||
},
|
||||
link: function(scope, element, attrs, controllers) {
|
||||
// When accessing the element's contents synchronously, they
|
||||
// may not be defined yet because of transclusion. There is a higher
|
||||
// chance that it will be accessible if we wait one frame.
|
||||
$$rAF(function() {
|
||||
var mdNavItem = controllers[0];
|
||||
var mdNavBar = controllers[1];
|
||||
var navButton = angular.element(element[0].querySelector('._md-nav-button'));
|
||||
|
||||
if (!mdNavItem.name) {
|
||||
mdNavItem.name = angular.element(element[0]
|
||||
.querySelector('._md-nav-button-text')).text().trim();
|
||||
}
|
||||
|
||||
navButton.on('click', function() {
|
||||
mdNavBar.mdSelectedNavItem = mdNavItem.name;
|
||||
scope.$apply();
|
||||
});
|
||||
|
||||
$mdAria.expectWithText(element, 'aria-label');
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Controller for the nav-item component.
|
||||
* @param {!angular.JQLite} $element
|
||||
* @constructor
|
||||
* @final
|
||||
* ngInject
|
||||
*/
|
||||
function MdNavItemController($element) {
|
||||
|
||||
/** @private @const {!angular.JQLite} */
|
||||
this._$element = $element;
|
||||
|
||||
// Data-bound variables
|
||||
|
||||
/** @const {?Function} */
|
||||
this.mdNavClick;
|
||||
|
||||
/** @const {?string} */
|
||||
this.mdNavHref;
|
||||
|
||||
/** @const {?string} */
|
||||
this.mdNavSref;
|
||||
/** @const {?Object} */
|
||||
this.srefOpts;
|
||||
/** @const {?string} */
|
||||
this.name;
|
||||
|
||||
// State variables
|
||||
/** @private {boolean} */
|
||||
this._selected = false;
|
||||
|
||||
/** @private {boolean} */
|
||||
this._focused = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a map of class names and values for use by ng-class.
|
||||
* @return {!Object<string,boolean>}
|
||||
*/
|
||||
MdNavItemController.prototype.getNgClassMap = function() {
|
||||
return {
|
||||
'md-active': this._selected,
|
||||
'md-primary': this._selected,
|
||||
'md-unselected': !this._selected,
|
||||
'md-focused': this._focused,
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
* Get the name attribute of the tab.
|
||||
* @return {string}
|
||||
*/
|
||||
MdNavItemController.prototype.getName = function() {
|
||||
return this.name;
|
||||
};
|
||||
|
||||
/**
|
||||
* Get the button element associated with the tab.
|
||||
* @return {!Element}
|
||||
*/
|
||||
MdNavItemController.prototype.getButtonEl = function() {
|
||||
return this._$element[0].querySelector('._md-nav-button');
|
||||
};
|
||||
|
||||
/**
|
||||
* Set the selected state of the tab.
|
||||
* @param {boolean} isSelected
|
||||
*/
|
||||
MdNavItemController.prototype.setSelected = function(isSelected) {
|
||||
this._selected = isSelected;
|
||||
};
|
||||
|
||||
/**
|
||||
* @return {boolean}
|
||||
*/
|
||||
MdNavItemController.prototype.isSelected = function() {
|
||||
return this._selected;
|
||||
};
|
||||
|
||||
/**
|
||||
* Set the focused state of the tab.
|
||||
* @param {boolean} isFocused
|
||||
*/
|
||||
MdNavItemController.prototype.setFocused = function(isFocused) {
|
||||
this._focused = isFocused;
|
||||
|
||||
if (isFocused) {
|
||||
this.getButtonEl().focus();
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* @return {boolean}
|
||||
*/
|
||||
MdNavItemController.prototype.hasFocus = function() {
|
||||
return this._focused;
|
||||
};
|
||||
|
||||
ngmaterial.components.navBar = angular.module("material.components.navBar");
|
||||
6
www/bower_components/angular-material/modules/closure/navBar/navBar.min.css
vendored
Normal file
6
www/bower_components/angular-material/modules/closure/navBar/navBar.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
/*!
|
||||
* Angular Material Design
|
||||
* https://github.com/angular/material
|
||||
* @license MIT
|
||||
* v1.1.2-master-a9ba340
|
||||
*/.md-nav-bar{border-style:solid;border-width:0 0 1px;height:48px;position:relative}._md-nav-bar-list{outline:none;list-style:none;margin:0;padding:0;box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-webkit-flex-direction:row;flex-direction:row}.md-nav-item:first-of-type{margin-left:8px}.md-button._md-nav-button{line-height:24px;margin:0 4px;padding:12px 16px;-webkit-transition:background-color .35s cubic-bezier(.35,0,.25,1);transition:background-color .35s cubic-bezier(.35,0,.25,1)}.md-button._md-nav-button:focus{outline:none}.md-button._md-nav-button:hover{background-color:inherit}md-nav-ink-bar{bottom:0;height:2px;left:auto;position:absolute;right:auto;background-color:#000}md-nav-ink-bar._md-left{-webkit-transition:left .125s cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1);transition:left .125s cubic-bezier(.35,0,.25,1),right .25s cubic-bezier(.35,0,.25,1)}md-nav-ink-bar._md-right{-webkit-transition:left .25s cubic-bezier(.35,0,.25,1),right .125s cubic-bezier(.35,0,.25,1);transition:left .25s cubic-bezier(.35,0,.25,1),right .125s cubic-bezier(.35,0,.25,1)}md-nav-ink-bar.ng-animate{-webkit-transition:none;transition:none}md-nav-extra-content{min-height:48px;padding-right:12px}
|
||||
7
www/bower_components/angular-material/modules/closure/navBar/navBar.min.js
vendored
Normal file
7
www/bower_components/angular-material/modules/closure/navBar/navBar.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user