Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

angular-material

Package Overview
Dependencies
Maintainers
1
Versions
66
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

angular-material - npm Package Compare versions

Comparing version 0.9.7 to 0.9.8

2

bower.json
{
"name": "angular-material",
"version": "0.9.7",
"version": "0.9.8",
"ignore": [],

@@ -5,0 +5,0 @@ "dependencies": {

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -43,3 +43,4 @@ goog.provide('ng.material.components.autocomplete');

selectedItemWatchers = [],
hasFocus = false;
hasFocus = false,
lastCount = 0;

@@ -148,4 +149,9 @@ //-- public variables

angular.element($window).on('resize', positionDropdown);
$scope.$on('$destroy', cleanup);
}
function cleanup () {
elements.$.ul.remove();
}
function gatherElements () {

@@ -312,3 +318,3 @@ elements = {

function isMinLengthMet () {
return $scope.searchText.length >= getMinLength();
return $scope.searchText && $scope.searchText.length >= getMinLength();
}

@@ -320,6 +326,10 @@

$scope.selectedItem = self.matches[index];
$scope.searchText = getDisplayValue($scope.selectedItem) || $scope.searchText;
self.hidden = true;
self.index = 0;
self.matches = [];
//-- force form to update state for validation
$timeout(function () {
elements.$.input.controller('ngModel').$setViewValue(getDisplayValue($scope.selectedItem) || $scope.searchText);
self.hidden = true;
});
}

@@ -352,4 +362,4 @@

cache[term] = matches;
if (searchText !== $scope.searchText) return; //-- just cache the results if old request
self.loading = false;
if (searchText !== $scope.searchText) return; //-- just cache the results if old request
promise = null;

@@ -364,9 +374,10 @@ self.matches = matches;

function updateMessages () {
self.messages = self.matches.length
? [ getCountMessage(), getCurrentDisplayValue() ]
: [];
self.messages = [ getCountMessage(), getCurrentDisplayValue() ];
}
function getCountMessage () {
if (lastCount === self.matches.length) return '';
lastCount = self.matches.length;
switch (self.matches.length) {
case 0: return 'There are no matches available.';
case 1: return 'There is 1 match available.';

@@ -445,4 +456,4 @@ default: return 'There are ' + self.matches.length + ' matches available.';

* @param {expression} md-items An expression in the format of `item in items` to iterate over matches for your search.
* @param {expression} md-selected-item-change An expression to be run each time a new item is selected
* @param {expression} md-search-text-change An expression to be run each time the search text updates
* @param {expression=} md-selected-item-change An expression to be run each time a new item is selected
* @param {expression=} md-search-text-change An expression to be run each time the search text updates
* @param {string=} md-search-text A model to bind the search query text to

@@ -459,2 +470,3 @@ * @param {object=} md-selected-item A model to bind the selected item to

* @param {string=} md-menu-class This will be applied to the dropdown menu for styling
* @param {string=} md-floating-label This will add a floating label to autocomplete and wrap it in `md-input-container`
*

@@ -550,10 +562,2 @@ * @usage

' + getInputElement() + '\
<button\
type="button"\
tabindex="-1"\
ng-if="$mdAutocompleteCtrl.scope.searchText && !isDisabled"\
ng-click="$mdAutocompleteCtrl.clear()">\
<md-icon md-svg-icon="md-cancel"></md-icon>\
<span class="md-visually-hidden">Clear</span>\
</button>\
<md-progress-linear\

@@ -648,3 +652,12 @@ ng-if="$mdAutocompleteCtrl.loading"\

aria-activedescendant=""\
aria-expanded="{{!$mdAutocompleteCtrl.hidden}}"/>';
aria-expanded="{{!$mdAutocompleteCtrl.hidden}}"/>\
<button\
type="button"\
tabindex="-1"\
ng-if="$mdAutocompleteCtrl.scope.searchText && !isDisabled"\
ng-click="$mdAutocompleteCtrl.clear()">\
<md-icon md-svg-icon="md-close"></md-icon>\
<span class="md-visually-hidden">Clear</span>\
</button>\
';
}

@@ -651,0 +664,0 @@ }

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.backdrop');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.bottomSheet');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.button');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.card');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.checkbox');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.chips');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.content');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -142,5 +142,5 @@ goog.provide('ng.material.components.dialog');

* });
* function DialogController(scope, $mdDialog, items) {
* scope.items = items;
* scope.closeDialog = function() {
* function DialogController($scope, $mdDialog, items) {
* $scope.items = items;
* $scope.closeDialog = function() {
* $mdDialog.hide();

@@ -150,3 +150,3 @@ * }

* }
*
* }
* })(angular);

@@ -373,2 +373,4 @@ * </hljs>

* @param {*=} response An argument for the resolved promise.
*
* @returns {promise} A promise that is resolved when the dialog has been closed.
*/

@@ -384,2 +386,4 @@

* @param {*=} response An argument for the rejected promise.
*
* @returns {promise} A promise that is resolved when the dialog has been closed.
*/

@@ -386,0 +390,0 @@

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.divider');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.gridList');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -29,4 +29,4 @@ goog.provide('ng.material.components.icon');

* @description
* The `<md-icon />` directive is an markup element useful for showing an icon based on a font-icon
* or a SVG. Icons are view-only elements that should not be used directly as buttons; instead nest a `<md-icon />`
* The `<md-icon>` directive is an markup element useful for showing an icon based on a font-icon
* or a SVG. Icons are view-only elements that should not be used directly as buttons; instead nest a `<md-icon>`
* inside a `md-button` to add hover and click features.

@@ -44,4 +44,4 @@ *

* <li> Use &lt;md-icon md-font-icon="classname" /&gt; or <br/>
* use &lt;md-icon md-font-library="library_style_name"&gt; textual_name &lt;/md-icon&gt; or <br/>
* use &lt;md-icon md-font-library="library_style_name"&gt; numerical_character_reference &lt;/md-icon&gt;
* use &lt;md-icon md-font-set="font library classname or alias"&gt; textual_name &lt;/md-icon&gt; or <br/>
* use &lt;md-icon md-font-set="font library classname or alias"&gt; numerical_character_reference &lt;/md-icon&gt;
* </li>

@@ -72,3 +72,3 @@ * </ol>

* <img src="https://cloud.githubusercontent.com/assets/210413/7902490/fe8dd14c-0780-11e5-98fb-c821cc6475e6.png"
* alt="Material Design Icon-Selector" style="max-width:75%;padding-left:10%">
* aria-label="Material Design Icon-Selector" style="max-width:75%;padding-left:10%">
* </a>

@@ -81,12 +81,13 @@ *

*
* @param {string} md-font-icon String name of CSS icon associated with the font-face will be used
* @param {string} md-font-icon Name of CSS icon associated with the font-face will be used
* to render the icon. Requires the fonts and the named CSS styles to be preloaded.
* @param {string} md-font-library String name of CSS icon associated with the font-face will be used
* to render the icon. Requires the fonts and the named CSS styles to be preloaded.
* @param {string} md-svg-src String URL [or expression ] used to load, cache, and display an external SVG.
* @param {string} md-svg-icon String name used for lookup of the icon from the internal cache; interpolated strings or
* @param {string} md-font-set CSS style name associated with the font library; which will be assigned as
* the class for the font-icon ligature. This value may also be an alias that is used to lookup the classname;
* internally use `$mdIconProvider.fontSet(<alias>)` to determine the style name.
* @param {string} md-svg-src URL [or expression ] used to load, cache, and display an external SVG.
* @param {string} md-svg-icon Name used for lookup of the icon from the internal cache; interpolated strings or
* expressions may also be used. Specific set names can be used with the syntax `<set name>:<icon name>`.<br/><br/>
* To use icon sets, developers are required to pre-register the sets using the `$mdIconProvider` service.
* @param {string=} alt Labels icon for accessibility. If an empty string is provided, icon
* will be hidden from accessibility layer with `aria-hidden="true"`. If there's no alt on the icon
* @param {string=} aria-label Labels icon for accessibility. If an empty string is provided, icon
* will be hidden from accessibility layer with `aria-hidden="true"`. If there's no aria-label on the icon
* nor a label on the parent element, a warning will be logged to the console.

@@ -99,7 +100,7 @@ *

* <!-- Icon ID; may contain optional icon set prefix; icons must registered using $mdIconProvider -->
* <md-icon md-svg-icon="social:android" alt="android " ></md-icon>
* <md-icon md-svg-icon="social:android" aria-label="android " ></md-icon>
*
* <!-- Icon urls; may be preloaded in templateCache -->
* <md-icon md-svg-src="/android.svg" alt="android " ></md-icon>
* <md-icon md-svg-src="{{ getAndroid() }}" alt="android " ></md-icon>
* <md-icon md-svg-src="/android.svg" aria-label="android " ></md-icon>
* <md-icon md-svg-src="{{ getAndroid() }}" aria-label="android " ></md-icon>
*

@@ -125,16 +126,29 @@ * </hljs>

*
* <md-icon md-font-icon="android" alt="android" ></md-icon>
* <md-icon md-font-icon="fa-magic" class="fa" alt="magic wand"></md-icon>
* <md-icon md-font-icon="android" aria-label="android" ></md-icon>
* <md-icon class="icon_home" aria-label="Home" ></md-icon>
*
* </hljs>
*
* When using Font Icons with ligatures:
* When using Material Font Icons with ligatures:
* <hljs lang="html">
* <!-- For Material Design Icons -->
* <!-- The class '.material-icons' is auto-added. -->
* <md-icon> face </md-icon>
* <md-icon class="md-light md-48"> face </md-icon>
* <md-icon md-font-set="material-icons"> face </md-icon>
* <md-icon> #xE87C; </md-icon>
* </hljs>
*
* <md-icon md-font-library="material-icons">face</md-icon>
* <md-icon md-font-library="material-icons">#xE87C;</md-icon>
* <md-icon md-font-library="material-icons" class="md-light md-48">face</md-icon>
* When using other Font-Icon libraries:
*
* <hljs lang="js">
* // Specify a font-icon style alias
* angular.config(function($mdIconProvider) {
* $mdIconProvider.fontSet('fa', 'fontawesome');
* });
* </hljs>
*
* <hljs lang="html">
* <md-icon md-font-set="fa">email</md-icon>
* </hljs>
*

@@ -146,6 +160,6 @@ */

scope: {
fontLib: '@mdFontLibrary',
fontSet : '@mdFontSet',
fontIcon: '@mdFontIcon',
svgIcon: '@mdSvgIcon',
svgSrc: '@mdSvgSrc'
svgIcon : '@mdSvgIcon',
svgSrc : '@mdSvgSrc'
},

@@ -159,15 +173,23 @@ restrict: 'E',

function getTemplate(element, attr) {
var hasAttrValue = function(key) { return attr[key] && attr[key].length };
var attrValue = function(key) { return hasAttrValue(key) ? attr[key] : '' };
var isEmptyAttr = function(key) { return angular.isDefined(attr[key]) ? attr[key].length == 0 : false },
hasAttrValue = function(key) { return attr[key] && attr[key].length > 0; },
attrValue = function(key) { return hasAttrValue(key) ? attr[key] : '' };
// If using font-icons, transclude the ligature or NRCs
var tmpl = hasAttrValue('mdFontIcon') ? '<span class="md-font {{classNames}}" ng-class="fontIcon"></span>' :
hasAttrValue('mdFontLibrary') ? '<span ng-transclude></span>' : '';
// If using the deprecated md-font-icon API
// If using ligature-based font-icons, transclude the ligature or NRCs
// Transpose the mdFontLibrary name to the list of classnames
// For example, Material Icons expects classnames like `.material-icons.md-48` instead of `.material-icons .md-48`
var tmplFontIcon = '<span class="md-font {{classNames}}" ng-class="fontIcon"></span>';
var tmplFontSet = '<span class="{{classNames}}" ng-transclude></span>';
var names = (attrValue('mdFontLibrary') + ' ' + attrValue('class')).trim();
element.attr('class',names);
var tmpl = hasAttrValue('mdSvgIcon') ? '' :
hasAttrValue('mdSvgSrc') ? '' :
isEmptyAttr('mdFontIcon') ? '' :
hasAttrValue('mdFontIcon') ? tmplFontIcon : tmplFontSet;
// If available, lookup the fontSet style and add to the list of classnames
// NOTE: Material Icons expects classnames like `.material-icons.md-48` instead of `.material-icons .md-48`
var names = (tmpl == tmplFontSet) ? $mdIcon.fontSet(attrValue('mdFontSet')) + ' ' : '';
names = (names + attrValue('class')).trim();
return $interpolate( tmpl )({ classNames: names });

@@ -187,11 +209,16 @@ }

var ariaLabel = attr.alt || scope.fontIcon || scope.svgIcon;
var label = attr.alt || scope.fontIcon || scope.svgIcon || element.text();
var attrName = attr.$normalize(attr.$attr.mdSvgIcon || attr.$attr.mdSvgSrc || '');
if ( !attr.mdFontLibrary ) {
if (attr.alt != '' && !parentsHaveText() ) {
$mdAria.expect(element, 'aria-label', ariaLabel);
if ( !attr['aria-label'] ) {
if (label != '' && !parentsHaveText() ) {
$mdAria.expect(element, 'aria-label', label);
$mdAria.expect(element, 'role', 'img');
} else {
// Hide from the accessibility layer.
} else if ( !element.text() ) {
// If not a font-icon with ligature, then
// hide from the accessibility layer.
$mdAria.expect(element, 'aria-hidden', 'true');

@@ -242,3 +269,5 @@ }

*
* Loading of the actual svg files are deferred to on-demand requests and are loaded
* If using font-icons, the developer is repsonsible for loading the fonts.
*
* If using SVGs, loading of the actual svg files are deferred to on-demand requests and are loaded
* internally by the `$mdIcon` service using the `$http` service. When an SVG is requested by name/ID,

@@ -255,2 +284,3 @@ * the `$mdIcon` service searches its registry for the associated source URL;

* $mdIconProvider
* .defaultFontSet( 'fontawesome' )
* .defaultIconSet('my/app/icons.svg') // Register a default set of SVG icons

@@ -379,2 +409,34 @@ * .iconSet('social', 'my/app/social.svg') // Register a named icon set of SVGs

*/
/**
* @ngdoc method
* @name $mdIconProvider#defaultFontSet
*
* @description
* When using Font-Icons, Angular Material assumes the the Material Design icons will be used and automatically
* configures the default font-set == 'material-icons'. Note that the font-set references the font-icon library
* class style that should be applied to the `<md-icon>`.
*
* Configuring the default means that the attributes
* `md-font-set="material-icons"` or `class="material-icons"` do not need to be explicitly declared on the
* `<md-icon>` markup. For example:
*
* `<md-icon> face </md-icon>`
* will render as
* `<span class="material-icons"> face </span>`, and
*
* `<md-icon md-font-set="fa"> face </md-icon>`
* will render as
* `<span class="fa"> face </span>`
*
* @param {string} name of the font-library style that should be applied to the md-icon DOM element
*
* @usage
* <hljs lang="js">
* app.config(function($mdIconProvider) {
* $mdIconProvider.defaultFontSet( 'fontawesome' );
* });
* </hljs>
*
*/
/**

@@ -408,3 +470,5 @@ * @ngdoc method

var config = {
defaultIconSize: 24
defaultIconSize: 24,
defaultFontSet: 'material-icons',
fontSets : [ ]
};

@@ -415,2 +479,3 @@

MdIconProvider.prototype = {
icon : function icon(id, url, iconSize) {

@@ -422,3 +487,2 @@ if ( id.indexOf(':') == -1 ) id = '$default:' + id;

},
iconSet : function iconSet(id, url, iconSize) {

@@ -428,3 +492,2 @@ config[id] = new ConfigurationItem(url, iconSize );

},
defaultIconSet : function defaultIconSet(url, iconSize) {

@@ -438,6 +501,25 @@ var setName = '$default';

config[setName].iconSize = iconSize || config.defaultIconSize;
return this;
},
/**
* Register an alias name associated with a font-icon library style ;
*/
fontSet : function fontSet(alias, className) {
config.fontSets.push({
alias : alias,
fontSet : className || alias
});
},
/**
* Specify a default style name associated with a font-icon library
* fallback to Material Icons.
*
*/
defaultFontSet : function defaultFontSet(className) {
config.defaultFontSet = !className ? '' : className;
return this;
},
defaultIconSize : function defaultIconSize(iconSize) {

@@ -487,3 +569,3 @@ config.defaultIconSize = iconSize;

this.preloadIcons($templateCache);
return new MdIconService(config, $http, $q, $log, $templateCache);
return MdIconService(config, $http, $q, $log, $templateCache);
}]

@@ -546,4 +628,11 @@ };

Icon.prototype = { clone : cloneSVG, prepare: prepareAndStyle };
getIcon.fontSet = findRegisteredFontSet;
return function getIcon(id) {
// Publish service...
return getIcon;
/**
* Actual $mdIcon service is essentially a lookup function
*/
function getIcon(id) {
id = id || '';

@@ -563,5 +652,21 @@

.then( cacheIcon(id) );
};
}
/**
* Lookup registered fontSet style using its alias...
* If not found,
*/
function findRegisteredFontSet(alias) {
var useDefault = angular.isUndefined(alias) || !(alias && alias.length);
if ( useDefault ) return config.defaultFontSet;
var result = alias;
angular.forEach(config.fontSets, function(it){
if ( it.alias == alias ) result = it.fontSet || result;
});
return result;
}
/**
* Prepare and cache the loaded icon for the specified `id`

@@ -568,0 +673,0 @@ */

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -132,3 +132,4 @@ goog.provide('ng.material.components.input');

* </hljs>
* <h3>With Errors (uses [ngMessages](https://docs.angularjs.org/api/ngMessages))</h3>
* <h3>With Errors</h3>
*
* <hljs lang="html">

@@ -162,2 +163,3 @@ * <form name="userForm">

*
* Requires [ngMessages](https://docs.angularjs.org/api/ngMessages).
* Behaves like the [AngularJS input directive](https://docs.angularjs.org/api/ng/directive/input).

@@ -164,0 +166,0 @@ *

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -221,9 +221,11 @@ goog.provide('ng.material.components.list');

if (!hasClick && !proxies.length) {
firstChild.addEventListener('keypress', function(e) {
firstChild && firstChild.addEventListener('keypress', function(e) {
if (e.target.nodeName != 'INPUT' && e.target.nodeName != 'TEXTAREA') {
var keyCode = e.which || e.keyCode;
if (keyCode == $mdConstant.KEY_CODE.SPACE) {
firstChild.click();
e.preventDefault();
e.stopPropagation();
if (firstChild) {
firstChild.click();
e.preventDefault();
e.stopPropagation();
}
}

@@ -272,2 +274,3 @@ }

ng.material.components.list = angular.module("material.components.list");

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.progressCircular');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.progressLinear');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.radioButton');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.select');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.sidenav');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -123,5 +123,5 @@ goog.provide('ng.material.components.slider');

// Default values, overridable by attrs
attr.min ? attr.$observe('min', updateMin) : updateMin(0);
attr.max ? attr.$observe('max', updateMax) : updateMax(100);
attr.step ? attr.$observe('step', updateStep) : updateStep(1);
angular.isDefined(attr.min) ? attr.$observe('min', updateMin) : updateMin(0);
angular.isDefined(attr.max) ? attr.$observe('max', updateMax) : updateMax(100);
angular.isDefined(attr.step)? attr.$observe('step', updateStep) : updateStep(1);

@@ -282,3 +282,5 @@ // We have to manually stop the $watch on ngDisabled because it exists

if (angular.isNumber(value)) {
return Math.round(value / step) * step;
var formattedValue = (Math.round(value / step) * step);
// Format to 3 digits after the decimal point - fixes #2015.
return (Math.round(formattedValue * 1000) / 1000);
}

@@ -285,0 +287,0 @@ }

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -165,2 +165,5 @@ goog.provide('ng.material.components.sticky');

item.clone.css('margin-left', item.left + 'px');
if ($mdUtil.floatingScrollbars()) {
item.clone.css('margin-right', '0');
}
}

@@ -167,0 +170,0 @@

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.subheader');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.swipe');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.switch');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -107,3 +107,3 @@ goog.provide('ng.material.components.tabs');

function getLabel () {
return getLabelAttribute() || getLabelElement() || getElementContents();
return getLabelElement() || getLabelAttribute() || getElementContents();
function getLabelAttribute () { return attr.label; }

@@ -141,2 +141,4 @@ function getLabelElement () {

index = Array.prototype.indexOf.call(tabs, element[0]),
body = element.find('md-tab-body').remove(),
label = element.find('md-tab-label').remove(),
data = ctrl.insertTab({

@@ -147,4 +149,4 @@ scope: scope,

element: element,
template: element.find('md-tab-body').html(),
label: element.find('md-tab-label').html()
template: body.html(),
label: label.html()
}, index);

@@ -221,6 +223,7 @@

$mdUtil, $animate) {
var ctrl = this,
locked = false,
elements = getElements(),
queue = [];
var ctrl = this,
locked = false,
elements = getElements(),
queue = [],
destroyed = false;

@@ -271,2 +274,3 @@ ctrl.scope = $scope;

function cleanup () {
destroyed = true;
angular.element($window).off('resize', handleWindowResize);

@@ -395,3 +399,3 @@ angular.element(elements.paging).off('DOMSubtreeModified', ctrl.updateInkBarStyles);

// tab select/deselect events
if ($scope.selectedIndex === selectedIndex) {
if ($scope.selectedIndex === selectedIndex && !destroyed) {
tab.scope.deselect();

@@ -411,2 +415,3 @@ ctrl.tabs[$scope.selectedIndex] && ctrl.tabs[$scope.selectedIndex].scope.select();

isRight: function () { return this.getIndex() > $scope.selectedIndex; },
shouldRender: function () { return !$scope.noDisconnect || this.isActive(); },
hasFocus: function () { return !ctrl.lastClick && ctrl.hasFocus && this.getIndex() === ctrl.focusIndex; },

@@ -668,2 +673,4 @@ id: $mdUtil.nextUid()

* @param {boolean=} md-no-pagination When enabled, pagination will remain off
* @param {boolean=} md-swipe-content When enabled, swipe gestures will be enabled for the content area to jump between tabs
* @param {boolean=} md-no-disconnect If your tab content has background tasks (ie. event listeners), you will want to include this to prevent the scope from being disconnected
*

@@ -702,3 +709,5 @@ * @usage

selectedIndex: '=?mdSelected',
stretchTabs: '@?mdStretchTabs'
stretchTabs: '@?mdStretchTabs',
swipeContent: '=?mdSwipeContent',
noDisconnect: '=?mdNoDisconnect'
},

@@ -786,8 +795,6 @@ template: function (element, attr) {

aria-labelledby="tab-item-{{tab.id}}"\
md-swipe-left="$mdTabsCtrl.incrementSelectedIndex(1)"\
md-swipe-right="$mdTabsCtrl.incrementSelectedIndex(-1)"\
md-swipe-left="swipeContent && $mdTabsCtrl.incrementSelectedIndex(1)"\
md-swipe-right="swipeContent && $mdTabsCtrl.incrementSelectedIndex(-1)"\
ng-if="$mdTabsCtrl.hasContent"\
ng-repeat="(index, tab) in $mdTabsCtrl.tabs" \
md-template="tab.template"\
md-scope="tab.parent"\
ng-repeat="(index, tab) in $mdTabsCtrl.tabs"\
md-connected-if="tab.isActive()"\

@@ -800,3 +807,8 @@ ng-class="{\

\'md-no-scroll\': dynamicHeight\
}"></md-tab-content>\
}">\
<div\
md-template="tab.template"\
md-scope="tab.parent"\
ng-if="tab.shouldRender()"></div>\
</md-tab-content>\
</md-tabs-content-wrapper>\

@@ -856,5 +868,7 @@ ';

function disconnect () {
if (ctrl.scope.noDisconnect) return;
$mdUtil.disconnectScope(compileScope);
}
function reconnect () {
if (ctrl.scope.noDisconnect) return;
$mdUtil.reconnectScope(compileScope);

@@ -861,0 +875,0 @@ }

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.toast');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.toolbar');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -45,3 +45,4 @@ goog.provide('ng.material.components.tooltip');

*/
function MdTooltipDirective($timeout, $window, $$rAF, $document, $mdUtil, $mdTheming, $rootElement, $animate, $q) {
function MdTooltipDirective($timeout, $window, $$rAF, $document, $mdUtil, $mdTheming, $rootElement,
$animate, $q) {

@@ -123,11 +124,10 @@ var TOOLTIP_SHOW_DELAY = 300;

function getNearestContentElement () {
var current = element.parent()[0];
// Look for the nearest parent md-content, stopping at the rootElement.
while (current && current !== $rootElement[0] && current !== document.body) {
if (current.tagName && current.tagName.toLowerCase() == 'md-content') break;
current = current.parentNode;
}
return current;
}
function getNearestContentElement () {
var current = element.parent()[0];
// Look for the nearest parent md-content, stopping at the rootElement.
while (current && current !== $rootElement[0] && current !== document.body) {
current = current.parentNode;
}
return current;
}

@@ -134,0 +134,0 @@ function hasComputedStyleValue(key, value) {

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ goog.provide('ng.material.components.whiteframe');

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -43,3 +43,4 @@ (function( window, angular, undefined ){

selectedItemWatchers = [],
hasFocus = false;
hasFocus = false,
lastCount = 0;

@@ -148,4 +149,9 @@ //-- public variables

angular.element($window).on('resize', positionDropdown);
$scope.$on('$destroy', cleanup);
}
function cleanup () {
elements.$.ul.remove();
}
function gatherElements () {

@@ -312,3 +318,3 @@ elements = {

function isMinLengthMet () {
return $scope.searchText.length >= getMinLength();
return $scope.searchText && $scope.searchText.length >= getMinLength();
}

@@ -320,6 +326,10 @@

$scope.selectedItem = self.matches[index];
$scope.searchText = getDisplayValue($scope.selectedItem) || $scope.searchText;
self.hidden = true;
self.index = 0;
self.matches = [];
//-- force form to update state for validation
$timeout(function () {
elements.$.input.controller('ngModel').$setViewValue(getDisplayValue($scope.selectedItem) || $scope.searchText);
self.hidden = true;
});
}

@@ -352,4 +362,4 @@

cache[term] = matches;
if (searchText !== $scope.searchText) return; //-- just cache the results if old request
self.loading = false;
if (searchText !== $scope.searchText) return; //-- just cache the results if old request
promise = null;

@@ -364,9 +374,10 @@ self.matches = matches;

function updateMessages () {
self.messages = self.matches.length
? [ getCountMessage(), getCurrentDisplayValue() ]
: [];
self.messages = [ getCountMessage(), getCurrentDisplayValue() ];
}
function getCountMessage () {
if (lastCount === self.matches.length) return '';
lastCount = self.matches.length;
switch (self.matches.length) {
case 0: return 'There are no matches available.';
case 1: return 'There is 1 match available.';

@@ -445,4 +456,4 @@ default: return 'There are ' + self.matches.length + ' matches available.';

* @param {expression} md-items An expression in the format of `item in items` to iterate over matches for your search.
* @param {expression} md-selected-item-change An expression to be run each time a new item is selected
* @param {expression} md-search-text-change An expression to be run each time the search text updates
* @param {expression=} md-selected-item-change An expression to be run each time a new item is selected
* @param {expression=} md-search-text-change An expression to be run each time the search text updates
* @param {string=} md-search-text A model to bind the search query text to

@@ -459,2 +470,3 @@ * @param {object=} md-selected-item A model to bind the selected item to

* @param {string=} md-menu-class This will be applied to the dropdown menu for styling
* @param {string=} md-floating-label This will add a floating label to autocomplete and wrap it in `md-input-container`
*

@@ -550,10 +562,2 @@ * @usage

' + getInputElement() + '\
<button\
type="button"\
tabindex="-1"\
ng-if="$mdAutocompleteCtrl.scope.searchText && !isDisabled"\
ng-click="$mdAutocompleteCtrl.clear()">\
<md-icon md-svg-icon="md-cancel"></md-icon>\
<span class="md-visually-hidden">Clear</span>\
</button>\
<md-progress-linear\

@@ -648,3 +652,12 @@ ng-if="$mdAutocompleteCtrl.loading"\

aria-activedescendant=""\
aria-expanded="{{!$mdAutocompleteCtrl.hidden}}"/>';
aria-expanded="{{!$mdAutocompleteCtrl.hidden}}"/>\
<button\
type="button"\
tabindex="-1"\
ng-if="$mdAutocompleteCtrl.scope.searchText && !isDisabled"\
ng-click="$mdAutocompleteCtrl.clear()">\
<md-icon md-svg-icon="md-close"></md-icon>\
<span class="md-visually-hidden">Clear</span>\
</button>\
';
}

@@ -651,0 +664,0 @@ }

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(e,t,n){"use strict";function o(e,n,o,i,l,a,r,m,c){function s(){f(),l(function(){$(),g(),h()})}function p(){function e(){var e=Y.ul.getBoundingClientRect(),n={};e.right>o.right-d&&(n.left=t.right-e.width+"px"),Y.$.ul.css(n)}if(!Y)return l(p,0,!1);var t=Y.wrap.getBoundingClientRect(),n=Y.snap.getBoundingClientRect(),o=Y.root.getBoundingClientRect(),i=n.bottom-o.top,a=o.bottom-n.top,r=t.left-o.left,m=t.width,c={left:r+"px",minWidth:m+"px",maxWidth:Math.max(t.right-o.left,o.right-t.left)-d+"px"};i>a&&o.height-t.bottom-d<u?(c.top="auto",c.bottom=a+"px",c.maxHeight=Math.min(u,t.top-o.top-d)+"px"):(c.top=i+"px",c.bottom="auto",c.maxHeight=Math.min(u,o.bottom-t.bottom-d)+"px"),Y.$.ul.css(c),l(e,0,!1)}function h(){Y.$.root.length&&(a(Y.$.ul),Y.$.ul.detach(),Y.$.root.append(Y.$.ul),m.pin&&m.pin(Y.$.ul,c))}function g(){e.autofocus&&Y.input.focus()}function f(){var n=parseInt(e.delay,10)||0;e.$watch("searchText",n?o.debounce(w,n):w),b(v),e.$watch("selectedItem",A),e.$watch("$mdAutocompleteCtrl.hidden",function(e,t){!e&&t&&p()}),t.element(r).on("resize",p)}function $(){Y={main:n[0],ul:n.find("ul")[0],input:n.find("input")[0],wrap:n.find("md-autocomplete-wrap")[0],root:document.body},Y.li=Y.ul.getElementsByTagName("li"),Y.snap=x(),Y.$=C(Y)}function x(){for(var e=n;e.length;e=e.parent())if(t.isDefined(e.attr("md-autocomplete-snap")))return e[0];return Y.wrap}function C(e){var n={};for(var o in e)n[o]=t.element(e[o]);return n}function v(t,n){t&&(e.searchText=M(t)),e.itemChange&&t!==n&&e.itemChange(D(t))}function A(e,t){for(var n=0;n<G.length;++n)G[n](e,t)}function b(e){-1==G.indexOf(e)&&G.push(e)}function T(e){var t=G.indexOf(e);-1!=t&&G.splice(t,1)}function w(t,n){j.index=k(),t!==n&&t!==M(e.selectedItem)&&(e.selectedItem=null,e.textChange&&t!==n&&e.textChange(D(e.selectedItem)),N()?B():(j.loading=!1,j.matches=[],j.hidden=O(),_()))}function E(){J=!1,V||(j.hidden=!0)}function y(){J=!0,t.isString(e.searchText)||(e.searchText=""),e.minLength>0||(j.hidden=O(),j.hidden||B())}function I(e){switch(e.keyCode){case i.KEY_CODE.DOWN_ARROW:if(j.loading)return;e.preventDefault(),j.index=Math.min(j.index+1,j.matches.length-1),q(),_();break;case i.KEY_CODE.UP_ARROW:if(j.loading)return;e.preventDefault(),j.index=j.index<0?j.matches.length-1:Math.max(0,j.index-1),q(),_();break;case i.KEY_CODE.TAB:case i.KEY_CODE.ENTER:if(j.hidden||j.loading||j.index<0||j.matches.length<1)return;e.preventDefault(),S(j.index);break;case i.KEY_CODE.ESCAPE:j.matches=[],j.hidden=!0,j.index=k()}}function L(){return t.isNumber(e.minLength)?e.minLength:1}function M(t){return t&&e.itemText?e.itemText(D(t)):t}function D(e){if(e){var t={};return j.itemName&&(t[j.itemName]=e),t}}function k(){return e.autoselect?0:-1}function O(){return N()?void 0:!0}function R(){return M(j.matches[j.index])}function N(){return e.searchText.length>=L()}function S(t){e.selectedItem=j.matches[t],e.searchText=M(e.selectedItem)||e.searchText,j.hidden=!0,j.index=0,j.matches=[]}function U(){e.searchText="",S(-1);var t=document.createEvent("CustomEvent");t.initCustomEvent("input",!0,!0,{value:e.searchText}),Y.input.dispatchEvent(t),Y.input.focus()}function H(n){function o(t){F[l]=t,j.loading=!1,n===e.searchText&&(z=null,j.matches=t,j.hidden=O(),_(),p())}var i=e.$parent.$eval(P),l=n.toLowerCase();t.isArray(i)?o(i):(j.loading=!0,i.success&&i.success(o),i.then&&i.then(o),i.error&&i.error(function(){j.loading=!1}))}function _(){j.messages=j.matches.length?[W(),R()]:[]}function W(){switch(j.matches.length){case 1:return"There is 1 match available.";default:return"There are "+j.matches.length+" matches available."}}function q(){if(Y.li[j.index]){var e=Y.li[j.index],t=e.offsetTop,n=t+e.offsetHeight,o=Y.ul.clientHeight;t<Y.ul.scrollTop?Y.ul.scrollTop=t:n>Y.ul.scrollTop+o&&(Y.ul.scrollTop=n-o)}}function B(){var t=e.searchText,n=t.toLowerCase();z&&z.cancel&&(z.cancel(),z=null),!e.noCache&&F[n]?(j.matches=F[n],_()):H(t),J&&(j.hidden=O())}var j=this,K=e.itemsExpr.split(/ in /i),P=K[1],Y=null,z=null,F={},V=!1,G=[],J=!1;return j.scope=e,j.parent=e.$parent,j.itemName=K[0],j.matches=[],j.loading=!1,j.hidden=!0,j.index=null,j.messages=[],j.id=o.nextUid(),j.keydown=I,j.blur=E,j.focus=y,j.clear=U,j.select=S,j.getCurrentDisplayValue=R,j.registerSelectedItemWatcher=b,j.unregisterSelectedItemWatcher=T,j.listEnter=function(){V=!0},j.listLeave=function(){V=!1,J||(j.hidden=!0)},j.mouseUp=function(){Y.input.focus()},s()}function i(e,t){function n(n,o,i){i.$observe("disabled",function(e){n.isDisabled=e}),i.$observe("required",function(e){n.isRequired=null!==e}),t.initOptionalProperties(n,i,{searchText:null,selectedItem:null}),e(o)}return{controller:"MdAutocompleteCtrl",controllerAs:"$mdAutocompleteCtrl",link:n,scope:{inputName:"@mdInputName",inputMinlength:"@mdInputMinlength",inputMaxlength:"@mdInputMaxlength",searchText:"=?mdSearchText",selectedItem:"=?mdSelectedItem",itemsExpr:"@mdItems",itemText:"&mdItemText",placeholder:"@placeholder",noCache:"=?mdNoCache",itemChange:"&?mdSelectedItemChange",textChange:"&?mdSearchTextChange",minLength:"=?mdMinLength",delay:"=?mdDelay",autofocus:"=?mdAutofocus",floatingLabel:"@?mdFloatingLabel",autoselect:"=?mdAutoselect",menuClass:"@?mdMenuClass"},template:function(e,t){function n(){var t=e.find("md-item-template").remove(),n=t.length?t.html():e.html();return t.length||e.empty(),n}function o(){var t=e.find("md-not-found").remove(),n=t.length?t.html():"";return n?'<li ng-if="!$mdAutocompleteCtrl.matches.length && !$mdAutocompleteCtrl.loading && !$mdAutocompleteCtrl.hidden" ng-hide="$mdAutocompleteCtrl.hidden" md-autocomplete-parent-scope>'+n+"</li>":""}function i(){return t.mdFloatingLabel?' <md-input-container flex ng-if="floatingLabel"> <label>{{floatingLabel}}</label> <input type="search" id="fl-input-{{$mdAutocompleteCtrl.id}}" name="{{inputName}}" autocomplete="off" ng-required="isRequired" ng-minlength="inputMinlength" ng-maxlength="inputMaxlength" ng-disabled="isDisabled" ng-model="$mdAutocompleteCtrl.scope.searchText" ng-keydown="$mdAutocompleteCtrl.keydown($event)" ng-blur="$mdAutocompleteCtrl.blur()" ng-focus="$mdAutocompleteCtrl.focus()" aria-owns="ul-{{$mdAutocompleteCtrl.id}}" aria-label="{{floatingLabel}}" aria-autocomplete="list" aria-haspopup="true" aria-activedescendant="" aria-expanded="{{!$mdAutocompleteCtrl.hidden}}"/> <div md-autocomplete-parent-scope md-autocomplete-replace>'+r+"</div> </md-input-container>":' <input flex type="search" id="input-{{$mdAutocompleteCtrl.id}}" name="{{inputName}}" ng-if="!floatingLabel" autocomplete="off" ng-required="isRequired" ng-disabled="isDisabled" ng-model="$mdAutocompleteCtrl.scope.searchText" ng-keydown="$mdAutocompleteCtrl.keydown($event)" ng-blur="$mdAutocompleteCtrl.blur()" ng-focus="$mdAutocompleteCtrl.focus()" placeholder="{{placeholder}}" aria-owns="ul-{{$mdAutocompleteCtrl.id}}" aria-label="{{placeholder}}" aria-autocomplete="list" aria-haspopup="true" aria-activedescendant="" aria-expanded="{{!$mdAutocompleteCtrl.hidden}}"/>'}var l=o(),a=n(),r=e.html();return' <md-autocomplete-wrap layout="row" ng-class="{ \'md-whiteframe-z1\': !floatingLabel }" role="listbox"> '+i()+' <button type="button" tabindex="-1" ng-if="$mdAutocompleteCtrl.scope.searchText && !isDisabled" ng-click="$mdAutocompleteCtrl.clear()"> <md-icon md-svg-icon="md-cancel"></md-icon> <span class="md-visually-hidden">Clear</span> </button> <md-progress-linear ng-if="$mdAutocompleteCtrl.loading" md-mode="indeterminate"></md-progress-linear> <ul role="presentation" class="md-autocomplete-suggestions md-whiteframe-z1 {{menuClass || \'\'}}" id="ul-{{$mdAutocompleteCtrl.id}}" ng-mouseenter="$mdAutocompleteCtrl.listEnter()" ng-mouseleave="$mdAutocompleteCtrl.listLeave()" ng-mouseup="$mdAutocompleteCtrl.mouseUp()"> <li ng-repeat="(index, item) in $mdAutocompleteCtrl.matches" ng-class="{ selected: index === $mdAutocompleteCtrl.index }" ng-hide="$mdAutocompleteCtrl.hidden" ng-click="$mdAutocompleteCtrl.select(index)" md-autocomplete-list-item="$mdAutocompleteCtrl.itemName"> '+a+" </li> "+l+' </ul> </md-autocomplete-wrap> <aria-status class="md-visually-hidden" role="status" aria-live="assertive"> <p ng-repeat="message in $mdAutocompleteCtrl.messages" ng-if="message">{{message}}</p> </aria-status>'}}}function l(e,n,o){function i(i){var l=o(n.html())(e),r=t.element("<div>").text(l).html(),m=n.attr("md-highlight-flags")||"",c=e.$watch(i,function(e){var t=a(e,m),o=r.replace(t,'<span class="highlight">$&</span>');n.html(o)});n.on("$destroy",function(){c()})}function l(e){return e?e.replace(/[\\\^\$\*\+\?\.\(\)\|\{\}\[\]]/g,"\\$&"):e}function a(e,t){var n="";return t.indexOf("^")>=1&&(n+="^"),n+=e,t.indexOf("$")>=1&&(n+="$"),new RegExp(l(n),t.replace(/[\$\^]/g,""))}return this.init=i,i()}function a(){return{terminal:!0,scope:!1,controller:"MdHighlightCtrl",link:function(e,t,n,o){o.init(n.mdHighlightText)}}}function r(e,t){function n(n,o,i){var l=n.$parent.$mdAutocompleteCtrl,a=l.parent.$new(!1,l.parent),r=l.scope.$eval(i.mdAutocompleteListItem);a[r]=n.item,e(o.contents())(a),o.attr({role:"option",id:"item_"+t.nextUid()})}return{terminal:!0,link:n,scope:!1}}function m(e,t){function n(t,n,o){var i=t.$parent.$mdAutocompleteCtrl;e(n.contents())(i.parent),o.hasOwnProperty("mdAutocompleteReplace")&&(n.after(n.contents()),n.remove())}return{restrict:"A",terminal:!0,link:n,scope:!1}}t.module("material.components.autocomplete",["material.core","material.components.icon"]),t.module("material.components.autocomplete").controller("MdAutocompleteCtrl",o);var c=41,u=5.5*c,d=8;o.$inject=["$scope","$element","$mdUtil","$mdConstant","$timeout","$mdTheming","$window","$animate","$rootElement"],t.module("material.components.autocomplete").directive("mdAutocomplete",i),i.$inject=["$mdTheming","$mdUtil"],t.module("material.components.autocomplete").controller("MdHighlightCtrl",l),l.$inject=["$scope","$element","$interpolate"],t.module("material.components.autocomplete").directive("mdHighlightText",a),t.module("material.components.autocomplete").directive("mdAutocompleteListItem",r),r.$inject=["$compile","$mdUtil"],t.module("material.components.autocomplete").directive("mdAutocompleteParentScope",m),m.$inject=["$compile","$mdUtil"]}(window,window.angular);
!function(e,t,n){"use strict";function o(e,n,o,i,l,a,r,m,c){function s(){f(),l(function(){x(),g(),h()})}function p(){function e(){var e=z.ul.getBoundingClientRect(),n={};e.right>o.right-d&&(n.left=t.right-e.width+"px"),z.$.ul.css(n)}if(!z)return l(p,0,!1);var t=z.wrap.getBoundingClientRect(),n=z.snap.getBoundingClientRect(),o=z.root.getBoundingClientRect(),i=n.bottom-o.top,a=o.bottom-n.top,r=t.left-o.left,m=t.width,c={left:r+"px",minWidth:m+"px",maxWidth:Math.max(t.right-o.left,o.right-t.left)-d+"px"};i>a&&o.height-t.bottom-d<u?(c.top="auto",c.bottom=a+"px",c.maxHeight=Math.min(u,t.top-o.top-d)+"px"):(c.top=i+"px",c.bottom="auto",c.maxHeight=Math.min(u,o.bottom-t.bottom-d)+"px"),z.$.ul.css(c),l(e,0,!1)}function h(){z.$.root.length&&(a(z.$.ul),z.$.ul.detach(),z.$.root.append(z.$.ul),m.pin&&m.pin(z.$.ul,c))}function g(){e.autofocus&&z.input.focus()}function f(){var n=parseInt(e.delay,10)||0;e.$watch("searchText",n?o.debounce(E,n):E),T(A),e.$watch("selectedItem",b),e.$watch("$mdAutocompleteCtrl.hidden",function(e,t){!e&&t&&p()}),t.element(r).on("resize",p),e.$on("$destroy",$)}function $(){z.$.ul.remove()}function x(){z={main:n[0],ul:n.find("ul")[0],input:n.find("input")[0],wrap:n.find("md-autocomplete-wrap")[0],root:document.body},z.li=z.ul.getElementsByTagName("li"),z.snap=C(),z.$=v(z)}function C(){for(var e=n;e.length;e=e.parent())if(t.isDefined(e.attr("md-autocomplete-snap")))return e[0];return z.wrap}function v(e){var n={};for(var o in e)n[o]=t.element(e[o]);return n}function A(t,n){t&&(e.searchText=D(t)),e.itemChange&&t!==n&&e.itemChange(k(t))}function b(e,t){for(var n=0;n<J.length;++n)J[n](e,t)}function T(e){-1==J.indexOf(e)&&J.push(e)}function w(e){var t=J.indexOf(e);-1!=t&&J.splice(t,1)}function E(t,n){K.index=O(),t!==n&&t!==D(e.selectedItem)&&(e.selectedItem=null,e.textChange&&t!==n&&e.textChange(k(e.selectedItem)),S()?j():(K.loading=!1,K.matches=[],K.hidden=R(),W()))}function y(){Q=!1,G||(K.hidden=!0)}function I(){Q=!0,t.isString(e.searchText)||(e.searchText=""),e.minLength>0||(K.hidden=R(),K.hidden||j())}function L(e){switch(e.keyCode){case i.KEY_CODE.DOWN_ARROW:if(K.loading)return;e.preventDefault(),K.index=Math.min(K.index+1,K.matches.length-1),B(),W();break;case i.KEY_CODE.UP_ARROW:if(K.loading)return;e.preventDefault(),K.index=K.index<0?K.matches.length-1:Math.max(0,K.index-1),B(),W();break;case i.KEY_CODE.TAB:case i.KEY_CODE.ENTER:if(K.hidden||K.loading||K.index<0||K.matches.length<1)return;e.preventDefault(),U(K.index);break;case i.KEY_CODE.ESCAPE:K.matches=[],K.hidden=!0,K.index=O()}}function M(){return t.isNumber(e.minLength)?e.minLength:1}function D(t){return t&&e.itemText?e.itemText(k(t)):t}function k(e){if(e){var t={};return K.itemName&&(t[K.itemName]=e),t}}function O(){return e.autoselect?0:-1}function R(){return S()?void 0:!0}function N(){return D(K.matches[K.index])}function S(){return e.searchText&&e.searchText.length>=M()}function U(t){e.selectedItem=K.matches[t],K.hidden=!0,K.index=0,K.matches=[],l(function(){z.$.input.controller("ngModel").$setViewValue(D(e.selectedItem)||e.searchText),K.hidden=!0})}function H(){e.searchText="",U(-1);var t=document.createEvent("CustomEvent");t.initCustomEvent("input",!0,!0,{value:e.searchText}),z.input.dispatchEvent(t),z.input.focus()}function _(n){function o(t){F[l]=t,n===e.searchText&&(K.loading=!1,V=null,K.matches=t,K.hidden=R(),W(),p())}var i=e.$parent.$eval(Y),l=n.toLowerCase();t.isArray(i)?o(i):(K.loading=!0,i.success&&i.success(o),i.then&&i.then(o),i.error&&i.error(function(){K.loading=!1}))}function W(){K.messages=[q(),N()]}function q(){if(X===K.matches.length)return"";switch(X=K.matches.length,K.matches.length){case 0:return"There are no matches available.";case 1:return"There is 1 match available.";default:return"There are "+K.matches.length+" matches available."}}function B(){if(z.li[K.index]){var e=z.li[K.index],t=e.offsetTop,n=t+e.offsetHeight,o=z.ul.clientHeight;t<z.ul.scrollTop?z.ul.scrollTop=t:n>z.ul.scrollTop+o&&(z.ul.scrollTop=n-o)}}function j(){var t=e.searchText,n=t.toLowerCase();V&&V.cancel&&(V.cancel(),V=null),!e.noCache&&F[n]?(K.matches=F[n],W()):_(t),Q&&(K.hidden=R())}var K=this,P=e.itemsExpr.split(/ in /i),Y=P[1],z=null,V=null,F={},G=!1,J=[],Q=!1,X=0;return K.scope=e,K.parent=e.$parent,K.itemName=P[0],K.matches=[],K.loading=!1,K.hidden=!0,K.index=null,K.messages=[],K.id=o.nextUid(),K.keydown=L,K.blur=y,K.focus=I,K.clear=H,K.select=U,K.getCurrentDisplayValue=N,K.registerSelectedItemWatcher=T,K.unregisterSelectedItemWatcher=w,K.listEnter=function(){G=!0},K.listLeave=function(){G=!1,Q||(K.hidden=!0)},K.mouseUp=function(){z.input.focus()},s()}function i(e,t){function n(n,o,i){i.$observe("disabled",function(e){n.isDisabled=e}),i.$observe("required",function(e){n.isRequired=null!==e}),t.initOptionalProperties(n,i,{searchText:null,selectedItem:null}),e(o)}return{controller:"MdAutocompleteCtrl",controllerAs:"$mdAutocompleteCtrl",link:n,scope:{inputName:"@mdInputName",inputMinlength:"@mdInputMinlength",inputMaxlength:"@mdInputMaxlength",searchText:"=?mdSearchText",selectedItem:"=?mdSelectedItem",itemsExpr:"@mdItems",itemText:"&mdItemText",placeholder:"@placeholder",noCache:"=?mdNoCache",itemChange:"&?mdSelectedItemChange",textChange:"&?mdSearchTextChange",minLength:"=?mdMinLength",delay:"=?mdDelay",autofocus:"=?mdAutofocus",floatingLabel:"@?mdFloatingLabel",autoselect:"=?mdAutoselect",menuClass:"@?mdMenuClass"},template:function(e,t){function n(){var t=e.find("md-item-template").remove(),n=t.length?t.html():e.html();return t.length||e.empty(),n}function o(){var t=e.find("md-not-found").remove(),n=t.length?t.html():"";return n?'<li ng-if="!$mdAutocompleteCtrl.matches.length && !$mdAutocompleteCtrl.loading && !$mdAutocompleteCtrl.hidden" ng-hide="$mdAutocompleteCtrl.hidden" md-autocomplete-parent-scope>'+n+"</li>":""}function i(){return t.mdFloatingLabel?' <md-input-container flex ng-if="floatingLabel"> <label>{{floatingLabel}}</label> <input type="search" id="fl-input-{{$mdAutocompleteCtrl.id}}" name="{{inputName}}" autocomplete="off" ng-required="isRequired" ng-minlength="inputMinlength" ng-maxlength="inputMaxlength" ng-disabled="isDisabled" ng-model="$mdAutocompleteCtrl.scope.searchText" ng-keydown="$mdAutocompleteCtrl.keydown($event)" ng-blur="$mdAutocompleteCtrl.blur()" ng-focus="$mdAutocompleteCtrl.focus()" aria-owns="ul-{{$mdAutocompleteCtrl.id}}" aria-label="{{floatingLabel}}" aria-autocomplete="list" aria-haspopup="true" aria-activedescendant="" aria-expanded="{{!$mdAutocompleteCtrl.hidden}}"/> <div md-autocomplete-parent-scope md-autocomplete-replace>'+r+"</div> </md-input-container>":' <input flex type="search" id="input-{{$mdAutocompleteCtrl.id}}" name="{{inputName}}" ng-if="!floatingLabel" autocomplete="off" ng-required="isRequired" ng-disabled="isDisabled" ng-model="$mdAutocompleteCtrl.scope.searchText" ng-keydown="$mdAutocompleteCtrl.keydown($event)" ng-blur="$mdAutocompleteCtrl.blur()" ng-focus="$mdAutocompleteCtrl.focus()" placeholder="{{placeholder}}" aria-owns="ul-{{$mdAutocompleteCtrl.id}}" aria-label="{{placeholder}}" aria-autocomplete="list" aria-haspopup="true" aria-activedescendant="" aria-expanded="{{!$mdAutocompleteCtrl.hidden}}"/> <button type="button" tabindex="-1" ng-if="$mdAutocompleteCtrl.scope.searchText && !isDisabled" ng-click="$mdAutocompleteCtrl.clear()"> <md-icon md-svg-icon="md-close"></md-icon> <span class="md-visually-hidden">Clear</span> </button> '}var l=o(),a=n(),r=e.html();return' <md-autocomplete-wrap layout="row" ng-class="{ \'md-whiteframe-z1\': !floatingLabel }" role="listbox"> '+i()+' <md-progress-linear ng-if="$mdAutocompleteCtrl.loading" md-mode="indeterminate"></md-progress-linear> <ul role="presentation" class="md-autocomplete-suggestions md-whiteframe-z1 {{menuClass || \'\'}}" id="ul-{{$mdAutocompleteCtrl.id}}" ng-mouseenter="$mdAutocompleteCtrl.listEnter()" ng-mouseleave="$mdAutocompleteCtrl.listLeave()" ng-mouseup="$mdAutocompleteCtrl.mouseUp()"> <li ng-repeat="(index, item) in $mdAutocompleteCtrl.matches" ng-class="{ selected: index === $mdAutocompleteCtrl.index }" ng-hide="$mdAutocompleteCtrl.hidden" ng-click="$mdAutocompleteCtrl.select(index)" md-autocomplete-list-item="$mdAutocompleteCtrl.itemName"> '+a+" </li> "+l+' </ul> </md-autocomplete-wrap> <aria-status class="md-visually-hidden" role="status" aria-live="assertive"> <p ng-repeat="message in $mdAutocompleteCtrl.messages" ng-if="message">{{message}}</p> </aria-status>'}}}function l(e,n,o){function i(i){var l=o(n.html())(e),r=t.element("<div>").text(l).html(),m=n.attr("md-highlight-flags")||"",c=e.$watch(i,function(e){var t=a(e,m),o=r.replace(t,'<span class="highlight">$&</span>');n.html(o)});n.on("$destroy",function(){c()})}function l(e){return e?e.replace(/[\\\^\$\*\+\?\.\(\)\|\{\}\[\]]/g,"\\$&"):e}function a(e,t){var n="";return t.indexOf("^")>=1&&(n+="^"),n+=e,t.indexOf("$")>=1&&(n+="$"),new RegExp(l(n),t.replace(/[\$\^]/g,""))}return this.init=i,i()}function a(){return{terminal:!0,scope:!1,controller:"MdHighlightCtrl",link:function(e,t,n,o){o.init(n.mdHighlightText)}}}function r(e,t){function n(n,o,i){var l=n.$parent.$mdAutocompleteCtrl,a=l.parent.$new(!1,l.parent),r=l.scope.$eval(i.mdAutocompleteListItem);a[r]=n.item,e(o.contents())(a),o.attr({role:"option",id:"item_"+t.nextUid()})}return{terminal:!0,link:n,scope:!1}}function m(e,t){function n(t,n,o){var i=t.$parent.$mdAutocompleteCtrl;e(n.contents())(i.parent),o.hasOwnProperty("mdAutocompleteReplace")&&(n.after(n.contents()),n.remove())}return{restrict:"A",terminal:!0,link:n,scope:!1}}t.module("material.components.autocomplete",["material.core","material.components.icon"]),t.module("material.components.autocomplete").controller("MdAutocompleteCtrl",o);var c=41,u=5.5*c,d=8;o.$inject=["$scope","$element","$mdUtil","$mdConstant","$timeout","$mdTheming","$window","$animate","$rootElement"],t.module("material.components.autocomplete").directive("mdAutocomplete",i),i.$inject=["$mdTheming","$mdUtil"],t.module("material.components.autocomplete").controller("MdHighlightCtrl",l),l.$inject=["$scope","$element","$interpolate"],t.module("material.components.autocomplete").directive("mdHighlightText",a),t.module("material.components.autocomplete").directive("mdAutocompleteListItem",r),r.$inject=["$compile","$mdUtil"],t.module("material.components.autocomplete").directive("mdAutocompleteParentScope",m),m.$inject=["$compile","$mdUtil"]}(window,window.angular);
{
"name": "angular-material-autocomplete",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7",
"angular-material-icon": "0.9.7"
"angular-material-core": "0.9.8",
"angular-material-icon": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(n,e,i){"use strict";function o(n){return n}e.module("material.components.backdrop",["material.core"]).directive("mdBackdrop",o),o.$inject=["$mdTheming"]}(window,window.angular);
{
"name": "angular-material-backdrop",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7"
"angular-material-core": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(e,t,n){"use strict";function o(){return{restrict:"E"}}function r(e){function n(e,n,a,l,c,i,s,m,d){function u(o,r,d){r=a.extractElementByName(r,"md-bottom-sheet"),S=c('<md-backdrop class="md-opaque md-bottom-sheet-backdrop">')(o),S.on("click",function(){l(s.cancel)}),i.inherit(S,d.parent),e.enter(S,d.parent,null);var u=new f(r,d.parent);return d.bottomSheet=u,d.targetEvent&&t.element(d.targetEvent.target).blur(),i.inherit(u.element,d.parent),d.disableParentScroll&&(d.lastOverflow=d.parent.css("overflow"),d.parent.css("overflow","hidden")),e.enter(u.element,d.parent).then(function(){var e=t.element(r[0].querySelector("button")||r[0].querySelector("a")||r[0].querySelector("[ng-click]"));e.focus(),d.escapeToClose&&(d.rootElementKeyupCallback=function(e){e.keyCode===n.KEY_CODE.ESCAPE&&l(s.cancel)},m.on("keyup",d.rootElementKeyupCallback))})}function p(n,o,r){var a=r.bottomSheet;return e.leave(S),e.leave(a.element).then(function(){r.disableParentScroll&&(r.parent.css("overflow",r.lastOverflow),delete r.lastOverflow),a.cleanup(),r.targetEvent&&t.element(r.targetEvent.target).focus()})}function f(e,t){function a(t){e.css(n.CSS.TRANSITION_DURATION,"0ms")}function c(t){var o=t.pointer.distanceY;5>o&&(o=Math.max(-r,o/2)),e.css(n.CSS.TRANSFORM,"translate3d(0,"+(r+o)+"px,0)")}function i(t){if(t.pointer.distanceY>0&&(t.pointer.distanceY>20||Math.abs(t.pointer.velocityY)>o)){var r=e.prop("offsetHeight")-t.pointer.distanceY,a=Math.min(r/t.pointer.velocityY*.75,500);e.css(n.CSS.TRANSITION_DURATION,a+"ms"),l(s.cancel)}else e.css(n.CSS.TRANSITION_DURATION,""),e.css(n.CSS.TRANSFORM,"")}var m=d.register(t,"drag",{horizontal:!1});return t.on("$md.dragstart",a).on("$md.drag",c).on("$md.dragend",i),{element:e,cleanup:function(){m(),t.off("$md.dragstart",a).off("$md.drag",c).off("$md.dragend",i)}}}var S;return{themable:!0,targetEvent:null,onShow:u,onRemove:p,escapeToClose:!0,disableParentScroll:!0}}var o=.5,r=80;return n.$inject=["$animate","$mdConstant","$mdUtil","$timeout","$compile","$mdTheming","$mdBottomSheet","$rootElement","$mdGesture"],e("$mdBottomSheet").setDefaults({methods:["disableParentScroll","escapeToClose","targetEvent"],options:n})}t.module("material.components.bottomSheet",["material.core","material.components.backdrop"]).directive("mdBottomSheet",o).provider("$mdBottomSheet",r),r.$inject=["$$interimElementProvider"]}(window,window.angular);
{
"name": "angular-material-bottomSheet",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7",
"angular-material-backdrop": "0.9.7"
"angular-material-core": "0.9.8",
"angular-material-backdrop": "0.9.8"
}
}
{
"name": "angular-material-button",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7"
"angular-material-core": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(n,t,e){"use strict";function i(n,e,i,o){function u(n){return t.isDefined(n.href)||t.isDefined(n.ngHref)||t.isDefined(n.ngLink)||t.isDefined(n.uiSref)}function a(n,t){return u(t)?'<a class="md-button" ng-transclude></a>':'<button class="md-button" ng-transclude></button>'}function c(a,c,s){var d=c[0];e(c),n.attach(a,c);var r=d.textContent.trim();r||i.expect(c,"aria-label"),u(s)&&t.isDefined(s.ngDisabled)&&a.$watch(s.ngDisabled,function(n){c.attr("tabindex",n?-1:0)}),c.on("click",function(n){s.disabled===!0&&(n.preventDefault(),n.stopImmediatePropagation())}),a.mouseActive=!1,c.on("mousedown",function(){a.mouseActive=!0,o(function(){a.mouseActive=!1},100)}).on("focus",function(){a.mouseActive===!1&&c.addClass("md-focused")}).on("blur",function(){c.removeClass("md-focused")})}return{restrict:"EA",replace:!0,transclude:!0,template:a,link:c}}t.module("material.components.button",["material.core"]).directive("mdButton",i),i.$inject=["$mdButtonInkRipple","$mdTheming","$mdAria","$timeout"]}(window,window.angular);
{
"name": "angular-material-card",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7"
"angular-material-core": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(n,i,t){"use strict";function e(n){return{restrict:"E",link:function(i,t,e){n(t)}}}i.module("material.components.card",["material.core"]).directive("mdCard",e),e.$inject=["$mdTheming"]}(window,window.angular);
{
"name": "angular-material-checkbox",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7"
"angular-material-core": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(e,n,i){"use strict";function t(e,i,t,c,d,o,a){function s(i,s){return s.type="checkbox",s.tabindex=s.tabindex||"0",i.attr("role",s.type),function(i,s,u,l){function m(e,n,t){u[e]&&i.$watch(u[e],function(e){t[e]&&s.attr(n,t[e])})}function f(e){var n=e.which||e.keyCode;(n===c.KEY_CODE.SPACE||n===c.KEY_CODE.ENTER)&&(e.preventDefault(),s.hasClass("md-focused")||s.addClass("md-focused"),p(e))}function p(e){s[0].hasAttribute("disabled")||i.$apply(function(){var n=u.ngChecked?u.checked:!l.$viewValue;l.$setViewValue(n,e&&e.type),l.$render()})}function v(){l.$viewValue?s.addClass(r):s.removeClass(r)}l=l||o.fakeNgModel(),d(s),u.ngChecked&&i.$watch(i.$eval.bind(i,u.ngChecked),l.$setViewValue.bind(l)),m("ngDisabled","tabindex",{"true":"-1","false":u.tabindex}),t.expectWithText(s,"aria-label"),e.link.pre(i,{on:n.noop,0:{}},u,[l]),i.mouseActive=!1,s.on("click",p).on("keypress",f).on("mousedown",function(){i.mouseActive=!0,a(function(){i.mouseActive=!1},100)}).on("focus",function(){i.mouseActive===!1&&s.addClass("md-focused")}).on("blur",function(){s.removeClass("md-focused")}),l.$render=v}}e=e[0];var r="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:s}}n.module("material.components.checkbox",["material.core"]).directive("mdCheckbox",t),t.$inject=["inputDirective","$mdInkRipple","$mdAria","$mdConstant","$mdTheming","$mdUtil","$timeout"]}(window,window.angular);
{
"name": "angular-material-chips",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7",
"angular-material-autocomplete": "0.9.7"
"angular-material-core": "0.9.8",
"angular-material-autocomplete": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(t,e,i){"use strict";function n(t){function i(i,n){return i.append(l),function(i,n,o,s){n.addClass("md-chip"),t(n),s&&e.element(n[0].querySelector(".md-chip-content")).on("blur",function(){s.selectedChip=-1})}}return{restrict:"E",require:"^?mdChips",compile:i}}function o(t){function e(e,i,n,o){i.on("click",function(t){e.$apply(function(){o.removeChip(e.$$replacedScope.$index)})}),t(function(){i.attr({tabindex:-1,ariaHidden:!0}),i.find("button").attr("tabindex","-1")})}return{restrict:"A",require:"^mdChips",scope:!1,link:e}}function s(t,e){function i(e,i,n){var o=e.$parent.$mdChipsCtrl,s=o.parent.$new(!1,o.parent);s.$$replacedScope=e,s.$chip=e.$chip,s.$mdChipsCtrl=o,i.html(o.$scope.$eval(n.mdChipTransclude)),t(i.contents())(s)}return{restrict:"EA",terminal:!0,link:i,scope:!1}}function c(t,e,i,n,o){this.$timeout=o,this.$mdConstant=e,this.$scope=t,this.parent=t.$parent,this.$log=i,this.$element=n,this.ngModelCtrl=null,this.userInputNgModelCtrl=null,this.userInputElement=null,this.items=[],this.selectedChip=-1,this.deleteHint="Press delete to remove this chip.",this.deleteButtonLabel="Remove",this.chipBuffer="",this.useMdOnAppend=!1}function r(t,e,i,n,o){function s(s,c){function r(t){if(c.ngModel){var e=p[0].querySelector(t);return e&&e.outerHTML}}var p=c.$mdUserTemplate;c.$mdUserTemplate=null;var d=r("md-chips>*[md-chip-remove]")||u,l=r("md-chips>md-chip-template")||m,h=r("md-chips>md-autocomplete")||r("md-chips>input")||a,C=p.find("md-chip");return p[0].querySelector("md-chip-template>*[md-chip-remove]")&&n.warn("invalid placement of md-chip-remove within md-chip-template."),function(n,s,r,p){e.initOptionalProperties(n,c),t(s);var m=p[0];if(m.chipContentsTemplate=l,m.chipRemoveTemplate=d,m.chipInputTemplate=h,s.attr({ariaHidden:!0,tabindex:-1}).on("focus",function(){m.onFocus()}),c.ngModel&&(m.configureNgModel(s.controller("ngModel")),r.mdOnAppend&&m.useMdOnAppendExpression(),h!=a&&o(function(){0===h.indexOf("<md-autocomplete")&&m.configureAutocomplete(s.find("md-autocomplete").controller("mdAutocomplete")),m.configureUserInput(s.find("input"))})),C.length>0){var u=i(C)(n.$parent);o(function(){s.find("md-chips-wrap").prepend(u)})}}}return{template:function(t,e){e.$mdUserTemplate=t.clone();return h},require:["mdChips"],restrict:"E",controller:"MdChipsCtrl",controllerAs:"$mdChipsCtrl",bindToController:!0,compile:s,scope:{readonly:"=readonly",placeholder:"@",secondaryPlaceholder:"@",mdOnAppend:"&",deleteHint:"@",deleteButtonLabel:"@",requireMatch:"=?mdRequireMatch"}}}function p(){this.selectedItem=null,this.searchText=""}function d(t,e){function i(i,n){return function(i,o,s,c){e.initOptionalProperties(i,n),t(o),o.attr("tabindex","-1")}}return{template:function(t,e){return C},restrict:"E",controller:"MdContactChipsCtrl",controllerAs:"$mdContactChipsCtrl",bindToController:!0,compile:i,scope:{contactQuery:"&mdContacts",placeholder:"@",secondaryPlaceholder:"@",contactName:"@mdContactName",contactImage:"@mdContactImage",contactEmail:"@mdContactEmail",contacts:"=ngModel",requireMatch:"=?mdRequireMatch"}}}e.module("material.components.chips",["material.core","material.components.autocomplete"]),e.module("material.components.chips").directive("mdChip",n);var l=' <span ng-if="!$mdChipsCtrl.readonly" class="md-visually-hidden"> {{$mdChipsCtrl.deleteHint}} </span>';n.$inject=["$mdTheming"],e.module("material.components.chips").directive("mdChipRemove",o),o.$inject=["$timeout"],e.module("material.components.chips").directive("mdChipTransclude",s),s.$inject=["$compile","$mdUtil"],e.module("material.components.chips").controller("MdChipsCtrl",c),c.$inject=["$scope","$mdConstant","$log","$element","$timeout"],c.prototype.inputKeydown=function(t){var e=this.getChipBuffer();switch(t.keyCode){case this.$mdConstant.KEY_CODE.ENTER:if(this.$scope.requireMatch||!e)break;t.preventDefault(),this.appendChip(e),this.resetChipBuffer();break;case this.$mdConstant.KEY_CODE.BACKSPACE:if(e)break;t.stopPropagation(),this.items.length&&this.selectAndFocusChipSafe(this.items.length-1)}},c.prototype.chipKeydown=function(t){if(!this.getChipBuffer())switch(t.keyCode){case this.$mdConstant.KEY_CODE.BACKSPACE:case this.$mdConstant.KEY_CODE.DELETE:if(this.selectedChip<0)return;t.preventDefault(),this.removeAndSelectAdjacentChip(this.selectedChip);break;case this.$mdConstant.KEY_CODE.LEFT_ARROW:t.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:t.preventDefault(),this.selectAndFocusChipSafe(this.selectedChip+1);break;case this.$mdConstant.KEY_CODE.ESCAPE:case this.$mdConstant.KEY_CODE.TAB:if(this.selectedChip<0)return;t.preventDefault(),this.onFocus()}},c.prototype.getPlaceholder=function(){var t=this.items.length&&(""==this.secondaryPlaceholder||this.secondaryPlaceholder);return t?this.placeholder:this.secondaryPlaceholder},c.prototype.removeAndSelectAdjacentChip=function(t){var i=this.getAdjacentChipIndex(t);this.removeChip(t),this.$timeout(e.bind(this,function(){this.selectAndFocusChipSafe(i)}))},c.prototype.resetSelectedChip=function(){this.selectedChip=-1},c.prototype.getAdjacentChipIndex=function(t){var e=this.items.length-1;return 0==e?-1:t==e?t-1:t},c.prototype.appendChip=function(t){this.items.indexOf(t)+1||(this.useMdOnAppend&&this.mdOnAppend&&(t=this.mdOnAppend({$chip:t})),this.items.push(t))},c.prototype.useMdOnAppendExpression=function(){this.useMdOnAppend=!0},c.prototype.getChipBuffer=function(){return this.userInputElement?this.userInputNgModelCtrl?this.userInputNgModelCtrl.$viewValue:this.userInputElement[0].value:this.chipBuffer},c.prototype.resetChipBuffer=function(){this.userInputElement?this.userInputNgModelCtrl?(this.userInputNgModelCtrl.$setViewValue(""),this.userInputNgModelCtrl.$render()):this.userInputElement[0].value="":this.chipBuffer=""},c.prototype.removeChip=function(t){this.items.splice(t,1)},c.prototype.removeChipAndFocusInput=function(t){this.removeChip(t),this.onFocus()},c.prototype.selectAndFocusChipSafe=function(t){return this.items.length?t===this.items.length?this.onFocus():(t=Math.max(t,0),t=Math.min(t,this.items.length-1),this.selectChip(t),void this.focusChip(t)):(this.selectChip(-1),void this.onFocus())},c.prototype.selectChip=function(t){t>=-1&&t<=this.items.length?this.selectedChip=t:this.$log.warn("Selected Chip index out of bounds; ignoring.")},c.prototype.selectAndFocusChip=function(t){this.selectChip(t),-1!=t&&this.focusChip(t)},c.prototype.focusChip=function(t){this.$element[0].querySelector('md-chip[index="'+t+'"] .md-chip-content').focus()},c.prototype.configureNgModel=function(t){this.ngModelCtrl=t;var e=this;t.$render=function(){e.items=e.ngModelCtrl.$viewValue}},c.prototype.onFocus=function(){var t=this.$element[0].querySelector("input");t&&t.focus(),this.resetSelectedChip()},c.prototype.onInputFocus=function(){this.inputHasFocus=!0,this.resetSelectedChip()},c.prototype.onInputBlur=function(){this.inputHasFocus=!1},c.prototype.configureUserInput=function(t){this.userInputElement=t;var i=t.controller("ngModel");i!=this.ngModelCtrl&&(this.userInputNgModelCtrl=i);var n=this.$scope,o=this;t.attr({tabindex:0}).on("keydown",function(t){n.$apply(e.bind(o,function(){o.inputKeydown(t)}))}).on("focus",e.bind(o,o.onInputFocus)).on("blur",e.bind(o,o.onInputBlur))},c.prototype.configureAutocomplete=function(t){t.registerSelectedItemWatcher(e.bind(this,function(t){t&&(this.appendChip(t),this.resetChipBuffer())})),this.$element.find("input").on("focus",e.bind(this,this.onInputFocus)).on("blur",e.bind(this,this.onInputBlur))},c.prototype.hasFocus=function(){return this.inputHasFocus||this.selectedChip>=0},e.module("material.components.chips").directive("mdChips",r);var h=' <md-chips-wrap ng-if="!$mdChipsCtrl.readonly || $mdChipsCtrl.items.length > 0" ng-keydown="$mdChipsCtrl.chipKeydown($event)" ng-class="{ \'md-focused\': $mdChipsCtrl.hasFocus() }" class="md-chips"> <md-chip ng-repeat="$chip in $mdChipsCtrl.items" index="{{$index}}" ng-class="{\'md-focused\': $mdChipsCtrl.selectedChip == $index}"> <div class="md-chip-content" tabindex="-1" aria-hidden="true" ng-focus="!$mdChipsCtrl.readonly && $mdChipsCtrl.selectChip($index)" md-chip-transclude="$mdChipsCtrl.chipContentsTemplate"></div> <div class="md-chip-remove-container" md-chip-transclude="$mdChipsCtrl.chipRemoveTemplate"></div> </md-chip> <div ng-if="!$mdChipsCtrl.readonly && $mdChipsCtrl.ngModelCtrl" class="md-chip-input-container" md-chip-transclude="$mdChipsCtrl.chipInputTemplate"></div> </div> </md-chips-wrap>',a=' <input tabindex="0" placeholder="{{$mdChipsCtrl.getPlaceholder()}}" aria-label="{{$mdChipsCtrl.getPlaceholder()}}" ng-model="$mdChipsCtrl.chipBuffer" ng-focus="$mdChipsCtrl.onInputFocus()" ng-blur="$mdChipsCtrl.onInputBlur()" ng-keydown="$mdChipsCtrl.inputKeydown($event)">',m=" <span>{{$chip}}</span>",u=' <button class="md-chip-remove" ng-if="!$mdChipsCtrl.readonly" ng-click="$mdChipsCtrl.removeChipAndFocusInput($$replacedScope.$index)" type="button" aria-hidden="true" tabindex="-1"> <md-icon md-svg-icon="md-close"></md-icon> <span class="md-visually-hidden"> {{$mdChipsCtrl.deleteButtonLabel}} </span> </button>';r.$inject=["$mdTheming","$mdUtil","$compile","$log","$timeout"],e.module("material.components.chips").controller("MdContactChipsCtrl",p),p.prototype.queryContact=function(t){var i=this.contactQuery({$query:t});return this.filterSelected?i.filter(e.bind(this,this.filterSelectedContacts)):i},p.prototype.filterSelectedContacts=function(t){return-1==this.contacts.indexOf(t)},e.module("material.components.chips").directive("mdContactChips",d);var C=' <md-chips class="md-contact-chips" ng-model="$mdContactChipsCtrl.contacts" md-require-match="$mdContactChipsCtrl.requireMatch" md-autocomplete-snap> <md-autocomplete md-menu-class="md-contact-chips-suggestions" md-selected-item="$mdContactChipsCtrl.selectedItem" md-search-text="$mdContactChipsCtrl.searchText" md-items="item in $mdContactChipsCtrl.queryContact($mdContactChipsCtrl.searchText)" md-item-text="$mdContactChipsCtrl.mdContactName" md-no-cache="true" md-autoselect placeholder="{{$mdContactChipsCtrl.contacts.length == 0 ? $mdContactChipsCtrl.placeholder : $mdContactChipsCtrl.secondaryPlaceholder}}"> <div class="md-contact-suggestion"> <img ng-src="{{item[$mdContactChipsCtrl.contactImage]}}" alt="{{item[$mdContactChipsCtrl.contactName]}}" /> <span class="md-contact-name" md-highlight-text="$mdContactChipsCtrl.searchText"> {{item[$mdContactChipsCtrl.contactName]}} </span> <span class="md-contact-email" >{{item[$mdContactChipsCtrl.contactEmail]}}</span> </div> </md-autocomplete> <md-chip-template> <div class="md-contact-avatar"> <img ng-src="{{$chip[$mdContactChipsCtrl.contactImage]}}" alt="{{$chip[$mdContactChipsCtrl.contactName]}}" /> </div> <div class="md-contact-name"> {{$chip[$mdContactChipsCtrl.contactName]}} </div> </md-chip-template> </md-chips>';d.$inject=["$mdTheming","$mdUtil"]}(window,window.angular);
{
"name": "angular-material-content",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7"
"angular-material-core": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(e,t,o){"use strict";function n(e){function t(e,t){this.$scope=e,this.$element=t}return{restrict:"E",controller:["$scope","$element",t],link:function(t,o,n){o[0];e(o),t.$broadcast("$mdContentLoaded",o),i(o[0])}}}function i(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",n),n.$inject=["$mdTheming"]}(window,window.angular);
{
"name": "angular-material-core",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-gestures": "0.9.7",
"angular-material-theming": "0.9.7"
"angular-material-gestures": "0.9.8",
"angular-material-theming": "0.9.8"
}
}
{
"name": "angular-material-dialog",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7",
"angular-material-backdrop": "0.9.7"
"angular-material-core": "0.9.8",
"angular-material-backdrop": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -142,5 +142,5 @@ (function( window, angular, undefined ){

* });
* function DialogController(scope, $mdDialog, items) {
* scope.items = items;
* scope.closeDialog = function() {
* function DialogController($scope, $mdDialog, items) {
* $scope.items = items;
* $scope.closeDialog = function() {
* $mdDialog.hide();

@@ -150,3 +150,3 @@ * }

* }
*
* }
* })(angular);

@@ -373,2 +373,4 @@ * </hljs>

* @param {*=} response An argument for the resolved promise.
*
* @returns {promise} A promise that is resolved when the dialog has been closed.
*/

@@ -384,2 +386,4 @@

* @param {*=} response An argument for the rejected promise.
*
* @returns {promise} A promise that is resolved when the dialog has been closed.
*/

@@ -386,0 +390,0 @@

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(e,t,n){"use strict";function o(e,t){return{restrict:"E",link:function(n,o,a){t(o),e(function(){var e=o[0].querySelector("md-dialog-content");e&&e.scrollHeight>e.clientHeight&&o.addClass("md-content-overflow")})}}}function a(e){function n(e,t){return{template:['<md-dialog md-theme="{{ dialog.theme }}" aria-label="{{ dialog.ariaLabel }}">','<md-dialog-content role="document" tabIndex="-1">','<h2 class="md-title">{{ dialog.title }}</h2>',"<p>{{ dialog.content }}</p>","</md-dialog-content>",'<div class="md-actions">','<md-button ng-if="dialog.$type == \'confirm\'" ng-click="dialog.abort()" class="md-primary">',"{{ dialog.cancel }}","</md-button>",'<md-button ng-click="dialog.hide()" class="md-primary">',"{{ dialog.ok }}","</md-button>","</div>","</md-dialog>"].join(""),controller:function(){this.hide=function(){e.hide(!0)},this.abort=function(){e.cancel()}},controllerAs:"dialog",bindToController:!0,theme:t.defaultTheme()}}function o(e,n,o,a,i,l,r,d,c,s,m){function p(e){var t=document.querySelector("md-dialog");t&&!t.contains(e.target)&&(e.stopImmediatePropagation(),t.focus())}function u(e,s,m){function u(){var e=s[0].querySelector(".dialog-close");if(!e){var n=s[0].querySelectorAll(".md-actions button");e=n[n.length-1]}return t.element(e)}t.element(n[0].body).addClass("md-dialog-is-showing"),s=o.extractElementByName(s,"md-dialog"),m.parent=t.element(m.parent),m.popInTarget=t.element((m.targetEvent||{}).target);var g=u();if(m.hasBackdrop){var h=m.parent[0]==n[0].body&&n[0].documentElement&&n[0].documentElement.scrollTop?t.element(n[0].documentElement):m.parent,k=h.prop("scrollTop");m.backdrop=t.element('<md-backdrop class="md-dialog-backdrop md-opaque">'),m.backdrop.css("top",k+"px"),i.inherit(m.backdrop,m.parent),c.enter(m.backdrop,m.parent),s.css("top",k+"px")}var C="dialog",T=g;return"alert"===m.$type&&(C="alertdialog",T=s.find("md-dialog-content")),f(s.find("md-dialog"),C,m),document.addEventListener("focus",p,!0),m.disableParentScroll&&(m.lastOverflow=m.parent.css("overflow"),m.parent.css("overflow","hidden")),v(s,m.parent,m.popInTarget&&m.popInTarget.length&&m.popInTarget).then(function(){b(s,!0),m.escapeToClose&&(m.rootElementKeyupCallback=function(e){e.keyCode===a.KEY_CODE.ESCAPE&&r(l.cancel)},d.on("keyup",m.rootElementKeyupCallback)),m.clickOutsideToClose&&(m.dialogClickOutsideCallback=function(e){e.target===s[0]&&r(l.cancel)},s.on("click",m.dialogClickOutsideCallback)),m.focusOnOpen&&T.focus()})}function g(e,o,a){return t.element(n[0].body).removeClass("md-dialog-is-showing"),a.backdrop&&c.leave(a.backdrop),a.disableParentScroll&&(a.parent.css("overflow",a.lastOverflow),delete a.lastOverflow),a.escapeToClose&&d.off("keyup",a.rootElementKeyupCallback),a.clickOutsideToClose&&o.off("click",a.dialogClickOutsideCallback),b(o,!1),document.removeEventListener("focus",p,!0),k(o,a.parent,a.popInTarget&&a.popInTarget.length&&a.popInTarget).then(function(){o.remove(),a.popInTarget&&a.popInTarget.focus()})}function f(t,n,a){t.attr({role:n,tabIndex:"-1"});var i=t.find("md-dialog-content");0===i.length&&(i=t);var l=t.attr("id")||"dialog_"+o.nextUid();i.attr("id",l),t.attr("aria-describedby",l),a.ariaLabel?e.expect(t,"aria-label",a.ariaLabel):e.expectAsync(t,"aria-label",function(){var e=i.text().split(/\s+/);return e.length>3&&(e=e.slice(0,3).concat("...")),e.join(" ")})}function h(e,t){return-1!==t.indexOf(e.nodeName)?!0:void 0}function b(e,t){function n(e){for(;e.parentNode;){if(e===document.body)return;for(var a=e.parentNode.children,i=0;i<a.length;i++)e===a[i]||h(a[i],["SCRIPT","STYLE"])||a[i].setAttribute(o,t);n(e=e.parentNode)}}var o="aria-hidden";e=e[0],n(e)}function v(e,t,n){var i=e.find("md-dialog");return t.append(e),C(i,n),s(function(){i.addClass("transition-in").css(a.CSS.TRANSFORM,"")}),o.transitionEndPromise(i)}function k(e,t,n){var a=e.find("md-dialog");return a.addClass("transition-out").removeClass("transition-in"),C(a,n),o.transitionEndPromise(a)}function C(e,t){if(t){var n=t[0].getBoundingClientRect(),o=e[0].getBoundingClientRect(),i=Math.min(.5,n.width/o.width),l=Math.min(.5,n.height/o.height);e.css(a.CSS.TRANSFORM,"translate3d("+(-o.left+n.left+n.width/2-o.width/2)+"px,"+(-o.top+n.top+n.height/2-o.height/2)+"px,0) scale("+i+","+l+")")}}return{hasBackdrop:!0,isolateScope:!0,onShow:u,onRemove:g,clickOutsideToClose:!1,escapeToClose:!0,targetEvent:null,focusOnOpen:!0,disableParentScroll:!0,transformTemplate:function(e){return'<div class="md-dialog-container">'+e+"</div>"}}}return n.$inject=["$mdDialog","$mdTheming"],o.$inject=["$mdAria","$document","$mdUtil","$mdConstant","$mdTheming","$mdDialog","$timeout","$rootElement","$animate","$$rAF","$q"],e("$mdDialog").setDefaults({methods:["disableParentScroll","hasBackdrop","clickOutsideToClose","escapeToClose","targetEvent","parent"],options:o}).addPreset("alert",{methods:["title","content","ariaLabel","ok","theme"],options:n}).addPreset("confirm",{methods:["title","content","ariaLabel","ok","cancel","theme"],options:n})}t.module("material.components.dialog",["material.core","material.components.backdrop"]).directive("mdDialog",o).provider("$mdDialog",a),o.$inject=["$$rAF","$mdTheming"],a.$inject=["$$interimElementProvider"]}(window,window.angular);
{
"name": "angular-material-divider",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7"
"angular-material-core": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(i,e,n){"use strict";function r(i){return{restrict:"E",link:i}}e.module("material.components.divider",["material.core"]).directive("mdDivider",r),r.$inject=["$mdTheming"]}(window,window.angular);
{
"name": "angular-material-gridList",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7"
"angular-material-core": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(t,e,n){"use strict";function i(t,n,i,o){function a(r,a,u,s){function l(){for(var t in n.MEDIA)o(t),o.getQuery(n.MEDIA[t]).addListener(L);return o.watchResponsiveAttributes(["md-cols","md-row-height"],u,d)}function c(){s.layoutDelegate=e.noop,T();for(var t in n.MEDIA)o.getQuery(n.MEDIA[t]).removeListener(L)}function d(t){null==t?s.invalidateLayout():o(t)&&s.invalidateLayout()}function f(t){var n=h(),o={tileSpans:v(n),colCount:w(),rowMode:I(),rowHeight:$(),gutter:y()};if(t||!e.equals(o,M)){var u=i(o.colCount,o.tileSpans,n).map(function(t,i){return{grid:{element:a,style:m(o.colCount,i,o.gutter,o.rowMode,o.rowHeight)},tiles:t.map(function(t,i){return{element:e.element(n[i]),style:g(t.position,t.spans,o.colCount,o.rowCount,o.gutter,o.rowMode,o.rowHeight)}})}}).reflow().performance();r.mdOnLayout({$event:{performance:u}}),M=o}}function p(t){return x+t+A}function g(t,e,n,i,r,o,a){var u=1/n*100,s=(n-1)/n,l=D({share:u,gutterShare:s,gutter:r}),c={left:C({unit:l,offset:t.col,gutter:r}),width:G({unit:l,span:e.col,gutter:r}),paddingTop:"",marginTop:"",top:"",height:""};switch(o){case"fixed":c.top=C({unit:a,offset:t.row,gutter:r}),c.height=G({unit:a,span:e.row,gutter:r});break;case"ratio":var d=u/a,f=D({share:d,gutterShare:s,gutter:r});c.paddingTop=G({unit:f,span:e.row,gutter:r}),c.marginTop=C({unit:f,offset:t.row,gutter:r});break;case"fit":var p=(i-1)/i,d=1/i*100,f=D({share:d,gutterShare:p,gutter:r});c.top=C({unit:f,offset:t.row,gutter:r}),c.height=G({unit:f,span:e.row,gutter:r})}return c}function m(t,e,n,i,r){var o={height:"",paddingBottom:""};switch(i){case"fixed":o.height=G({unit:r,span:e,gutter:n});break;case"ratio":var a=1===t?0:(t-1)/t,u=1/t*100,s=u*(1/r),l=D({share:s,gutterShare:a,gutter:n});o.paddingBottom=G({unit:l,span:e,gutter:n});break;case"fit":}return o}function h(){return[].filter.call(a.children(),function(t){return"MD-GRID-TILE"==t.tagName})}function v(t){return[].map.call(t,function(t){var n=e.element(t).controller("mdGridTile");return{row:parseInt(o.getResponsiveAttribute(n.$attrs,"md-rowspan"),10)||1,col:parseInt(o.getResponsiveAttribute(n.$attrs,"md-colspan"),10)||1}})}function w(){var t=parseInt(o.getResponsiveAttribute(u,"md-cols"),10);if(isNaN(t))throw"md-grid-list: md-cols attribute was not found, or contained a non-numeric value";return t}function y(){return b(o.getResponsiveAttribute(u,"md-gutter")||1)}function $(){var t=o.getResponsiveAttribute(u,"md-row-height");switch(I()){case"fixed":return b(t);case"ratio":var e=t.split(":");return parseFloat(e[0])/parseFloat(e[1]);case"fit":return 0}}function I(){var t=o.getResponsiveAttribute(u,"md-row-height");return"fit"==t?"fit":-1!==t.indexOf(":")?"ratio":"fixed"}function b(t){return/\D$/.test(t)?t:t+"px"}a.attr("role","list"),s.layoutDelegate=f;var L=e.bind(s,s.invalidateLayout),T=l();r.$on("$destroy",c);var M,x=t.startSymbol(),A=t.endSymbol(),D=t(p("share")+"% - ("+p("gutter")+" * "+p("gutterShare")+")"),C=t("calc(("+p("unit")+" + "+p("gutter")+") * "+p("offset")+")"),G=t("calc(("+p("unit")+") * "+p("span")+" + ("+p("span")+" - 1) * "+p("gutter")+")")}return{restrict:"E",controller:r,scope:{mdOnLayout:"&"},link:a}}function r(t){this.layoutInvalidated=!1,this.tilesInvalidated=!1,this.$timeout_=t,this.layoutDelegate=e.noop}function o(t){function n(e,n){var i,a,u,s,l,c;return s=t.time(function(){a=r(e,n)}),i={layoutInfo:function(){return a},map:function(e){return l=t.time(function(){var t=i.layoutInfo();u=e(t.positioning,t.rowCount)}),i},reflow:function(e){return c=t.time(function(){var t=e||o;t(u.grid,u.tiles)}),i},performance:function(){return{tileCount:n.length,layoutTime:s,mapTime:l,reflowTime:c,totalTime:s+l+c}}}}function i(t,e){t.element.css(t.style),e.forEach(function(t){t.element.css(t.style)})}function r(t,e){function n(e,n){if(e.col>t)throw"md-grid-list: Tile at position "+n+" has a colspan ("+e.col+") that exceeds the column count ("+t+")";for(var a=0,c=0;c-a<e.col;)u>=t?i():(a=l.indexOf(0,u),-1!==a&&-1!==(c=o(a+1))?u=c+1:(a=c=0,i()));return r(a,e.col,e.row),u=a+e.col,{col:a,row:s}}function i(){u=0,s++,r(0,t,-1)}function r(t,e,n){for(var i=t;t+e>i;i++)l[i]=Math.max(l[i]+n,0)}function o(t){var e;for(e=t;e<l.length;e++)if(0!==l[e])return e;return e===l.length?e:void 0}function a(){for(var e=[],n=0;t>n;n++)e.push(0);return e}var u=0,s=0,l=a();return{positioning:e.map(function(t,e){return{spans:t,position:n(t,e)}}),rowCount:s+Math.max.apply(Math,l)}}var o=i;return n.animateWith=function(t){o=e.isFunction(t)?t:i},n}function a(t){function n(n,i,r,o){i.attr("role","listitem");var a=t.watchResponsiveAttributes(["md-colspan","md-rowspan"],r,e.bind(o,o.invalidateLayout));o.invalidateTiles(),n.$on("$destroy",function(){a(),o.invalidateLayout()}),e.isDefined(n.$parent.$index)&&n.$watch(function(){return n.$parent.$index},function(t,e){t!==e&&o.invalidateTiles()})}return{restrict:"E",require:"^mdGridList",template:"<figure ng-transclude></figure>",transclude:!0,scope:{},controller:["$attrs",function(t){this.$attrs=t}],link:n}}function u(){return{template:"<figcaption ng-transclude></figcaption>",transclude:!0}}e.module("material.components.gridList",["material.core"]).directive("mdGridList",i).directive("mdGridTile",a).directive("mdGridTileFooter",u).directive("mdGridTileHeader",u).factory("$mdGridLayout",o),i.$inject=["$interpolate","$mdConstant","$mdGridLayout","$mdMedia"],r.$inject=["$timeout"],r.prototype={invalidateTiles:function(){this.tilesInvalidated=!0,this.invalidateLayout()},invalidateLayout:function(){this.layoutInvalidated||(this.layoutInvalidated=!0,this.$timeout_(e.bind(this,this.layout)))},layout:function(){try{this.layoutDelegate(this.tilesInvalidated)}finally{this.layoutInvalidated=!1,this.tilesInvalidated=!1}}},o.$inject=["$mdUtil"],a.$inject=["$mdMedia"]}(window,window.angular);
{
"name": "angular-material-icon",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7"
"angular-material-core": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -30,4 +30,4 @@ (function( window, angular, undefined ){

* @description
* The `<md-icon />` directive is an markup element useful for showing an icon based on a font-icon
* or a SVG. Icons are view-only elements that should not be used directly as buttons; instead nest a `<md-icon />`
* The `<md-icon>` directive is an markup element useful for showing an icon based on a font-icon
* or a SVG. Icons are view-only elements that should not be used directly as buttons; instead nest a `<md-icon>`
* inside a `md-button` to add hover and click features.

@@ -45,4 +45,4 @@ *

* <li> Use &lt;md-icon md-font-icon="classname" /&gt; or <br/>
* use &lt;md-icon md-font-library="library_style_name"&gt; textual_name &lt;/md-icon&gt; or <br/>
* use &lt;md-icon md-font-library="library_style_name"&gt; numerical_character_reference &lt;/md-icon&gt;
* use &lt;md-icon md-font-set="font library classname or alias"&gt; textual_name &lt;/md-icon&gt; or <br/>
* use &lt;md-icon md-font-set="font library classname or alias"&gt; numerical_character_reference &lt;/md-icon&gt;
* </li>

@@ -73,3 +73,3 @@ * </ol>

* <img src="https://cloud.githubusercontent.com/assets/210413/7902490/fe8dd14c-0780-11e5-98fb-c821cc6475e6.png"
* alt="Material Design Icon-Selector" style="max-width:75%;padding-left:10%">
* aria-label="Material Design Icon-Selector" style="max-width:75%;padding-left:10%">
* </a>

@@ -82,12 +82,13 @@ *

*
* @param {string} md-font-icon String name of CSS icon associated with the font-face will be used
* @param {string} md-font-icon Name of CSS icon associated with the font-face will be used
* to render the icon. Requires the fonts and the named CSS styles to be preloaded.
* @param {string} md-font-library String name of CSS icon associated with the font-face will be used
* to render the icon. Requires the fonts and the named CSS styles to be preloaded.
* @param {string} md-svg-src String URL [or expression ] used to load, cache, and display an external SVG.
* @param {string} md-svg-icon String name used for lookup of the icon from the internal cache; interpolated strings or
* @param {string} md-font-set CSS style name associated with the font library; which will be assigned as
* the class for the font-icon ligature. This value may also be an alias that is used to lookup the classname;
* internally use `$mdIconProvider.fontSet(<alias>)` to determine the style name.
* @param {string} md-svg-src URL [or expression ] used to load, cache, and display an external SVG.
* @param {string} md-svg-icon Name used for lookup of the icon from the internal cache; interpolated strings or
* expressions may also be used. Specific set names can be used with the syntax `<set name>:<icon name>`.<br/><br/>
* To use icon sets, developers are required to pre-register the sets using the `$mdIconProvider` service.
* @param {string=} alt Labels icon for accessibility. If an empty string is provided, icon
* will be hidden from accessibility layer with `aria-hidden="true"`. If there's no alt on the icon
* @param {string=} aria-label Labels icon for accessibility. If an empty string is provided, icon
* will be hidden from accessibility layer with `aria-hidden="true"`. If there's no aria-label on the icon
* nor a label on the parent element, a warning will be logged to the console.

@@ -100,7 +101,7 @@ *

* <!-- Icon ID; may contain optional icon set prefix; icons must registered using $mdIconProvider -->
* <md-icon md-svg-icon="social:android" alt="android " ></md-icon>
* <md-icon md-svg-icon="social:android" aria-label="android " ></md-icon>
*
* <!-- Icon urls; may be preloaded in templateCache -->
* <md-icon md-svg-src="/android.svg" alt="android " ></md-icon>
* <md-icon md-svg-src="{{ getAndroid() }}" alt="android " ></md-icon>
* <md-icon md-svg-src="/android.svg" aria-label="android " ></md-icon>
* <md-icon md-svg-src="{{ getAndroid() }}" aria-label="android " ></md-icon>
*

@@ -126,16 +127,29 @@ * </hljs>

*
* <md-icon md-font-icon="android" alt="android" ></md-icon>
* <md-icon md-font-icon="fa-magic" class="fa" alt="magic wand"></md-icon>
* <md-icon md-font-icon="android" aria-label="android" ></md-icon>
* <md-icon class="icon_home" aria-label="Home" ></md-icon>
*
* </hljs>
*
* When using Font Icons with ligatures:
* When using Material Font Icons with ligatures:
* <hljs lang="html">
* <!-- For Material Design Icons -->
* <!-- The class '.material-icons' is auto-added. -->
* <md-icon> face </md-icon>
* <md-icon class="md-light md-48"> face </md-icon>
* <md-icon md-font-set="material-icons"> face </md-icon>
* <md-icon> #xE87C; </md-icon>
* </hljs>
*
* <md-icon md-font-library="material-icons">face</md-icon>
* <md-icon md-font-library="material-icons">#xE87C;</md-icon>
* <md-icon md-font-library="material-icons" class="md-light md-48">face</md-icon>
* When using other Font-Icon libraries:
*
* <hljs lang="js">
* // Specify a font-icon style alias
* angular.config(function($mdIconProvider) {
* $mdIconProvider.fontSet('fa', 'fontawesome');
* });
* </hljs>
*
* <hljs lang="html">
* <md-icon md-font-set="fa">email</md-icon>
* </hljs>
*

@@ -147,6 +161,6 @@ */

scope: {
fontLib: '@mdFontLibrary',
fontSet : '@mdFontSet',
fontIcon: '@mdFontIcon',
svgIcon: '@mdSvgIcon',
svgSrc: '@mdSvgSrc'
svgIcon : '@mdSvgIcon',
svgSrc : '@mdSvgSrc'
},

@@ -160,15 +174,23 @@ restrict: 'E',

function getTemplate(element, attr) {
var hasAttrValue = function(key) { return attr[key] && attr[key].length };
var attrValue = function(key) { return hasAttrValue(key) ? attr[key] : '' };
var isEmptyAttr = function(key) { return angular.isDefined(attr[key]) ? attr[key].length == 0 : false },
hasAttrValue = function(key) { return attr[key] && attr[key].length > 0; },
attrValue = function(key) { return hasAttrValue(key) ? attr[key] : '' };
// If using font-icons, transclude the ligature or NRCs
var tmpl = hasAttrValue('mdFontIcon') ? '<span class="md-font {{classNames}}" ng-class="fontIcon"></span>' :
hasAttrValue('mdFontLibrary') ? '<span ng-transclude></span>' : '';
// If using the deprecated md-font-icon API
// If using ligature-based font-icons, transclude the ligature or NRCs
// Transpose the mdFontLibrary name to the list of classnames
// For example, Material Icons expects classnames like `.material-icons.md-48` instead of `.material-icons .md-48`
var tmplFontIcon = '<span class="md-font {{classNames}}" ng-class="fontIcon"></span>';
var tmplFontSet = '<span class="{{classNames}}" ng-transclude></span>';
var names = (attrValue('mdFontLibrary') + ' ' + attrValue('class')).trim();
element.attr('class',names);
var tmpl = hasAttrValue('mdSvgIcon') ? '' :
hasAttrValue('mdSvgSrc') ? '' :
isEmptyAttr('mdFontIcon') ? '' :
hasAttrValue('mdFontIcon') ? tmplFontIcon : tmplFontSet;
// If available, lookup the fontSet style and add to the list of classnames
// NOTE: Material Icons expects classnames like `.material-icons.md-48` instead of `.material-icons .md-48`
var names = (tmpl == tmplFontSet) ? $mdIcon.fontSet(attrValue('mdFontSet')) + ' ' : '';
names = (names + attrValue('class')).trim();
return $interpolate( tmpl )({ classNames: names });

@@ -188,11 +210,16 @@ }

var ariaLabel = attr.alt || scope.fontIcon || scope.svgIcon;
var label = attr.alt || scope.fontIcon || scope.svgIcon || element.text();
var attrName = attr.$normalize(attr.$attr.mdSvgIcon || attr.$attr.mdSvgSrc || '');
if ( !attr.mdFontLibrary ) {
if (attr.alt != '' && !parentsHaveText() ) {
$mdAria.expect(element, 'aria-label', ariaLabel);
if ( !attr['aria-label'] ) {
if (label != '' && !parentsHaveText() ) {
$mdAria.expect(element, 'aria-label', label);
$mdAria.expect(element, 'role', 'img');
} else {
// Hide from the accessibility layer.
} else if ( !element.text() ) {
// If not a font-icon with ligature, then
// hide from the accessibility layer.
$mdAria.expect(element, 'aria-hidden', 'true');

@@ -243,3 +270,5 @@ }

*
* Loading of the actual svg files are deferred to on-demand requests and are loaded
* If using font-icons, the developer is repsonsible for loading the fonts.
*
* If using SVGs, loading of the actual svg files are deferred to on-demand requests and are loaded
* internally by the `$mdIcon` service using the `$http` service. When an SVG is requested by name/ID,

@@ -256,2 +285,3 @@ * the `$mdIcon` service searches its registry for the associated source URL;

* $mdIconProvider
* .defaultFontSet( 'fontawesome' )
* .defaultIconSet('my/app/icons.svg') // Register a default set of SVG icons

@@ -380,2 +410,34 @@ * .iconSet('social', 'my/app/social.svg') // Register a named icon set of SVGs

*/
/**
* @ngdoc method
* @name $mdIconProvider#defaultFontSet
*
* @description
* When using Font-Icons, Angular Material assumes the the Material Design icons will be used and automatically
* configures the default font-set == 'material-icons'. Note that the font-set references the font-icon library
* class style that should be applied to the `<md-icon>`.
*
* Configuring the default means that the attributes
* `md-font-set="material-icons"` or `class="material-icons"` do not need to be explicitly declared on the
* `<md-icon>` markup. For example:
*
* `<md-icon> face </md-icon>`
* will render as
* `<span class="material-icons"> face </span>`, and
*
* `<md-icon md-font-set="fa"> face </md-icon>`
* will render as
* `<span class="fa"> face </span>`
*
* @param {string} name of the font-library style that should be applied to the md-icon DOM element
*
* @usage
* <hljs lang="js">
* app.config(function($mdIconProvider) {
* $mdIconProvider.defaultFontSet( 'fontawesome' );
* });
* </hljs>
*
*/
/**

@@ -409,3 +471,5 @@ * @ngdoc method

var config = {
defaultIconSize: 24
defaultIconSize: 24,
defaultFontSet: 'material-icons',
fontSets : [ ]
};

@@ -416,2 +480,3 @@

MdIconProvider.prototype = {
icon : function icon(id, url, iconSize) {

@@ -423,3 +488,2 @@ if ( id.indexOf(':') == -1 ) id = '$default:' + id;

},
iconSet : function iconSet(id, url, iconSize) {

@@ -429,3 +493,2 @@ config[id] = new ConfigurationItem(url, iconSize );

},
defaultIconSet : function defaultIconSet(url, iconSize) {

@@ -439,6 +502,25 @@ var setName = '$default';

config[setName].iconSize = iconSize || config.defaultIconSize;
return this;
},
/**
* Register an alias name associated with a font-icon library style ;
*/
fontSet : function fontSet(alias, className) {
config.fontSets.push({
alias : alias,
fontSet : className || alias
});
},
/**
* Specify a default style name associated with a font-icon library
* fallback to Material Icons.
*
*/
defaultFontSet : function defaultFontSet(className) {
config.defaultFontSet = !className ? '' : className;
return this;
},
defaultIconSize : function defaultIconSize(iconSize) {

@@ -488,3 +570,3 @@ config.defaultIconSize = iconSize;

this.preloadIcons($templateCache);
return new MdIconService(config, $http, $q, $log, $templateCache);
return MdIconService(config, $http, $q, $log, $templateCache);
}]

@@ -547,4 +629,11 @@ };

Icon.prototype = { clone : cloneSVG, prepare: prepareAndStyle };
getIcon.fontSet = findRegisteredFontSet;
return function getIcon(id) {
// Publish service...
return getIcon;
/**
* Actual $mdIcon service is essentially a lookup function
*/
function getIcon(id) {
id = id || '';

@@ -564,5 +653,21 @@

.then( cacheIcon(id) );
};
}
/**
* Lookup registered fontSet style using its alias...
* If not found,
*/
function findRegisteredFontSet(alias) {
var useDefault = angular.isUndefined(alias) || !(alias && alias.length);
if ( useDefault ) return config.defaultFontSet;
var result = alias;
angular.forEach(config.fontSets, function(it){
if ( it.alias == alias ) result = it.fontSet || result;
});
return result;
}
/**
* Prepare and cache the loaded icon for the specified `id`

@@ -569,0 +674,0 @@ */

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(t,n,e){"use strict";function r(t,n,e,r){function i(t,n){var e=function(t){return n[t]&&n[t].length},i=function(t){return e(t)?n[t]:""},o=e("mdFontIcon")?'<span class="md-font {{classNames}}" ng-class="fontIcon"></span>':e("mdFontLibrary")?"<span ng-transclude></span>":"",a=(i("mdFontLibrary")+" "+i("class")).trim();return t.attr("class",a),r(o)({classNames:a})}function o(r,i,o){function a(){var t=i.parent();return t.attr("aria-label")||t.text()?!0:t.parent().attr("aria-label")||t.parent().text()?!0:!1}n(i);var c=o.alt||r.fontIcon||r.svgIcon,s=o.$normalize(o.$attr.mdSvgIcon||o.$attr.mdSvgSrc||"");o.mdFontLibrary||(""==o.alt||a()?e.expect(i,"aria-hidden","true"):(e.expect(i,"aria-label",c),e.expect(i,"role","img"))),s&&o.$observe(s,function(n){i.empty(),n&&t(n).then(function(t){i.append(t)})})}return{scope:{fontLib:"@mdFontLibrary",fontIcon:"@mdFontIcon",svgIcon:"@mdSvgIcon",svgSrc:"@mdSvgSrc"},restrict:"E",transclude:!0,template:i,link:o}}function i(){}function o(t,n){this.url=t,this.iconSize=n||c.defaultIconSize}function a(t,e,r,i,o){function a(n){return function(e){return h[n]=f(e)?e:new p(e,t[n]),h[n].clone()}}function c(n){var e=t[n];return e?u(e.url).then(function(t){return new p(t,e)}):r.reject(n)}function s(n){function e(t){var e=n.slice(n.lastIndexOf(":")+1),i=t.querySelector("#"+e);return i?new p(i,o):r.reject(n)}var i=n.substring(0,n.lastIndexOf(":"))||"$default",o=t[i];return o?u(o.url).then(e):r.reject(n)}function u(t){return e.get(t,{cache:o}).then(function(t){return n.element("<div>").append(t.data).find("svg")[0]})}function l(t){var e;return n.isString(t)&&(e="icon "+t+" not found",i.warn(e)),r.reject(e||t)}function d(t){var e=n.isString(t)?t:t.message||t.data||t.statusText;return i.warn(e),r.reject(e)}function f(t){return n.isDefined(t.element)&&n.isDefined(t.config)}function p(t,e){"svg"!=t.tagName&&(t=n.element('<svg xmlns="http://www.w3.org/2000/svg">').append(t)[0]),t.getAttribute("xmlns")||t.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.element=t,this.config=e,this.prepare()}function g(){var e=this.config?this.config.iconSize:t.defaultIconSize;n.forEach({fit:"",height:"100%",width:"100%",preserveAspectRatio:"xMidYMid meet",viewBox:this.element.getAttribute("viewBox")||"0 0 "+e+" "+e},function(t,n){this.element.setAttribute(n,t)},this),n.forEach({"pointer-events":"none",display:"block"},function(t,n){this.element.style[n]=t},this)}function v(){return this.element.cloneNode(!0)}var h={},m=/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/i;return p.prototype={clone:v,prepare:g},function(t){return t=t||"",h[t]?r.when(h[t].clone()):m.test(t)?u(t).then(a(t)):(-1==t.indexOf(":")&&(t="$default:"+t),c(t)["catch"](s)["catch"](l)["catch"](d).then(a(t)))}}n.module("material.components.icon",["material.core"]).directive("mdIcon",r),r.$inject=["$mdIcon","$mdTheming","$mdAria","$interpolate"],n.module("material.components.icon").provider("$mdIcon",i);var c={defaultIconSize:24};i.prototype={icon:function(t,n,e){return-1==t.indexOf(":")&&(t="$default:"+t),c[t]=new o(n,e),this},iconSet:function(t,n,e){return c[t]=new o(n,e),this},defaultIconSet:function(t,n){var e="$default";return c[e]||(c[e]=new o(t,n)),c[e].iconSize=n||c.defaultIconSize,this},defaultIconSize:function(t){return c.defaultIconSize=t,this},preloadIcons:function(t){var n=this,e=[{id:"md-tabs-arrow",url:"md-tabs-arrow.svg",svg:'<svg version="1.1" x="0px" y="0px" viewBox="0 0 24 24"><g><polygon points="15.4,7.4 14,6 8,12 14,18 15.4,16.6 10.8,12 "/></g></svg>'},{id:"md-close",url:"md-close.svg",svg:'<svg version="1.1" x="0px" y="0px" viewBox="0 0 24 24"><g><path d="M19 6.41l-1.41-1.41-5.59 5.59-5.59-5.59-1.41 1.41 5.59 5.59-5.59 5.59 1.41 1.41 5.59-5.59 5.59 5.59 1.41-1.41-5.59-5.59z"/></g></svg>'},{id:"md-cancel",url:"md-cancel.svg",svg:'<svg version="1.1" x="0px" y="0px" viewBox="0 0 24 24"><g><path d="M12 2c-5.53 0-10 4.47-10 10s4.47 10 10 10 10-4.47 10-10-4.47-10-10-10zm5 13.59l-1.41 1.41-3.59-3.59-3.59 3.59-1.41-1.41 3.59-3.59-3.59-3.59 1.41-1.41 3.59 3.59 3.59-3.59 1.41 1.41-3.59 3.59 3.59 3.59z"/></g></svg>'},{id:"md-menu",url:"md-menu.svg",svg:'<svg version="1.1" x="0px" y="0px" viewBox="0 0 100 100"><path d="M 50 0 L 100 14 L 92 80 L 50 100 L 8 80 L 0 14 Z" fill="#b2b2b2"></path><path d="M 50 5 L 6 18 L 13.5 77 L 50 94 Z" fill="#E42939"></path><path d="M 50 5 L 94 18 L 86.5 77 L 50 94 Z" fill="#B72833"></path><path d="M 50 7 L 83 75 L 72 75 L 65 59 L 50 59 L 50 50 L 61 50 L 50 26 Z" fill="#b2b2b2"></path><path d="M 50 7 L 17 75 L 28 75 L 35 59 L 50 59 L 50 50 L 39 50 L 50 26 Z" fill="#fff"></path></svg>'},{id:"md-toggle-arrow",url:"md-toggle-arrow-svg",svg:'<svg version="1.1" x="0px" y="0px" viewBox="0 0 48 48"><path d="M24 16l-12 12 2.83 2.83 9.17-9.17 9.17 9.17 2.83-2.83z"/><path d="M0 0h48v48h-48z" fill="none"/></svg>'}];e.forEach(function(e){n.icon(e.id,e.url),t.put(e.url,e.svg)})},$get:["$http","$q","$log","$templateCache",function(t,n,e,r){return this.preloadIcons(r),new a(c,t,n,e,r)}]}}(window,window.angular);
!function(t,n,e){"use strict";function i(t,e,i,o){function r(e,i){var r=function(t){return n.isDefined(i[t])?0==i[t].length:!1},a=function(t){return i[t]&&i[t].length>0},c=function(t){return a(t)?i[t]:""},s='<span class="md-font {{classNames}}" ng-class="fontIcon"></span>',u='<span class="{{classNames}}" ng-transclude></span>',l=a("mdSvgIcon")?"":a("mdSvgSrc")?"":r("mdFontIcon")?"":a("mdFontIcon")?s:u,f=l==u?t.fontSet(c("mdFontSet"))+" ":"";return f=(f+c("class")).trim(),o(l)({classNames:f})}function a(n,o,r){function a(){var t=o.parent();return t.attr("aria-label")||t.text()?!0:t.parent().attr("aria-label")||t.parent().text()?!0:!1}e(o);var c=r.alt||n.fontIcon||n.svgIcon||o.text(),s=r.$normalize(r.$attr.mdSvgIcon||r.$attr.mdSvgSrc||"");r["aria-label"]||(""==c||a()?o.text()||i.expect(o,"aria-hidden","true"):(i.expect(o,"aria-label",c),i.expect(o,"role","img"))),s&&r.$observe(s,function(n){o.empty(),n&&t(n).then(function(t){o.append(t)})})}return{scope:{fontSet:"@mdFontSet",fontIcon:"@mdFontIcon",svgIcon:"@mdSvgIcon",svgSrc:"@mdSvgSrc"},restrict:"E",transclude:!0,template:r,link:a}}function o(){}function r(t,n){this.url=t,this.iconSize=n||c.defaultIconSize}function a(t,e,i,o,r){function a(t){return t=t||"",S[t]?i.when(S[t].clone()):x.test(t)?f(t).then(s(t)):(-1==t.indexOf(":")&&(t="$default:"+t),u(t)["catch"](l)["catch"](d)["catch"](g).then(s(t)))}function c(e){var i=n.isUndefined(e)||!(e&&e.length);if(i)return t.defaultFontSet;var o=e;return n.forEach(t.fontSets,function(t){t.alias==e&&(o=t.fontSet||o)}),o}function s(n){return function(e){return S[n]=p(e)?e:new v(e,t[n]),S[n].clone()}}function u(n){var e=t[n];return e?f(e.url).then(function(t){return new v(t,e)}):i.reject(n)}function l(n){function e(t){var e=n.slice(n.lastIndexOf(":")+1),o=t.querySelector("#"+e);return o?new v(o,r):i.reject(n)}var o=n.substring(0,n.lastIndexOf(":"))||"$default",r=t[o];return r?f(r.url).then(e):i.reject(n)}function f(t){return e.get(t,{cache:r}).then(function(t){return n.element("<div>").append(t.data).find("svg")[0]})}function d(t){var e;return n.isString(t)&&(e="icon "+t+" not found",o.warn(e)),i.reject(e||t)}function g(t){var e=n.isString(t)?t:t.message||t.data||t.statusText;return o.warn(e),i.reject(e)}function p(t){return n.isDefined(t.element)&&n.isDefined(t.config)}function v(t,e){"svg"!=t.tagName&&(t=n.element('<svg xmlns="http://www.w3.org/2000/svg">').append(t)[0]),t.getAttribute("xmlns")||t.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.element=t,this.config=e,this.prepare()}function h(){var e=this.config?this.config.iconSize:t.defaultIconSize;n.forEach({fit:"",height:"100%",width:"100%",preserveAspectRatio:"xMidYMid meet",viewBox:this.element.getAttribute("viewBox")||"0 0 "+e+" "+e},function(t,n){this.element.setAttribute(n,t)},this),n.forEach({"pointer-events":"none",display:"block"},function(t,n){this.element.style[n]=t},this)}function m(){return this.element.cloneNode(!0)}var S={},x=/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/i;return v.prototype={clone:m,prepare:h},a.fontSet=c,a}n.module("material.components.icon",["material.core"]).directive("mdIcon",i),i.$inject=["$mdIcon","$mdTheming","$mdAria","$interpolate"],n.module("material.components.icon").provider("$mdIcon",o);var c={defaultIconSize:24,defaultFontSet:"material-icons",fontSets:[]};o.prototype={icon:function(t,n,e){return-1==t.indexOf(":")&&(t="$default:"+t),c[t]=new r(n,e),this},iconSet:function(t,n,e){return c[t]=new r(n,e),this},defaultIconSet:function(t,n){var e="$default";return c[e]||(c[e]=new r(t,n)),c[e].iconSize=n||c.defaultIconSize,this},fontSet:function(t,n){c.fontSets.push({alias:t,fontSet:n||t})},defaultFontSet:function(t){return c.defaultFontSet=t?t:"",this},defaultIconSize:function(t){return c.defaultIconSize=t,this},preloadIcons:function(t){var n=this,e=[{id:"md-tabs-arrow",url:"md-tabs-arrow.svg",svg:'<svg version="1.1" x="0px" y="0px" viewBox="0 0 24 24"><g><polygon points="15.4,7.4 14,6 8,12 14,18 15.4,16.6 10.8,12 "/></g></svg>'},{id:"md-close",url:"md-close.svg",svg:'<svg version="1.1" x="0px" y="0px" viewBox="0 0 24 24"><g><path d="M19 6.41l-1.41-1.41-5.59 5.59-5.59-5.59-1.41 1.41 5.59 5.59-5.59 5.59 1.41 1.41 5.59-5.59 5.59 5.59 1.41-1.41-5.59-5.59z"/></g></svg>'},{id:"md-cancel",url:"md-cancel.svg",svg:'<svg version="1.1" x="0px" y="0px" viewBox="0 0 24 24"><g><path d="M12 2c-5.53 0-10 4.47-10 10s4.47 10 10 10 10-4.47 10-10-4.47-10-10-10zm5 13.59l-1.41 1.41-3.59-3.59-3.59 3.59-1.41-1.41 3.59-3.59-3.59-3.59 1.41-1.41 3.59 3.59 3.59-3.59 1.41 1.41-3.59 3.59 3.59 3.59z"/></g></svg>'},{id:"md-menu",url:"md-menu.svg",svg:'<svg version="1.1" x="0px" y="0px" viewBox="0 0 100 100"><path d="M 50 0 L 100 14 L 92 80 L 50 100 L 8 80 L 0 14 Z" fill="#b2b2b2"></path><path d="M 50 5 L 6 18 L 13.5 77 L 50 94 Z" fill="#E42939"></path><path d="M 50 5 L 94 18 L 86.5 77 L 50 94 Z" fill="#B72833"></path><path d="M 50 7 L 83 75 L 72 75 L 65 59 L 50 59 L 50 50 L 61 50 L 50 26 Z" fill="#b2b2b2"></path><path d="M 50 7 L 17 75 L 28 75 L 35 59 L 50 59 L 50 50 L 39 50 L 50 26 Z" fill="#fff"></path></svg>'},{id:"md-toggle-arrow",url:"md-toggle-arrow-svg",svg:'<svg version="1.1" x="0px" y="0px" viewBox="0 0 48 48"><path d="M24 16l-12 12 2.83 2.83 9.17-9.17 9.17 9.17 2.83-2.83z"/><path d="M0 0h48v48h-48z" fill="none"/></svg>'}];e.forEach(function(e){n.icon(e.id,e.url),t.put(e.url,e.svg)})},$get:["$http","$q","$log","$templateCache",function(t,n,e,i){return this.preloadIcons(i),a(c,t,n,e,i)}]}}(window,window.angular);
{
"name": "angular-material-input",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7"
"angular-material-core": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -133,3 +133,4 @@ (function( window, angular, undefined ){

* </hljs>
* <h3>With Errors (uses [ngMessages](https://docs.angularjs.org/api/ngMessages))</h3>
* <h3>With Errors</h3>
*
* <hljs lang="html">

@@ -163,2 +164,3 @@ * <form name="userForm">

*
* Requires [ngMessages](https://docs.angularjs.org/api/ngMessages).
* Behaves like the [AngularJS input directive](https://docs.angularjs.org/api/ng/directive/input).

@@ -165,0 +167,0 @@ *

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(e,t,n){"use strict";function i(e,t){function n(t,n,i){e(n)}function i(e,n,i){var r=this;r.isErrorGetter=i.mdIsError&&t(i.mdIsError),r.delegateClick=function(){r.input.focus()},r.element=n,r.setFocused=function(e){n.toggleClass("md-input-focused",!!e)},r.setHasValue=function(e){n.toggleClass("md-input-has-value",!!e)},r.setInvalid=function(e){n.toggleClass("md-input-invalid",!!e)},e.$watch(function(){return r.label&&r.input},function(e){e&&!r.label.attr("for")&&r.label.attr("for",r.input.attr("id"))})}return i.$inject=["$scope","$element","$attrs"],{restrict:"E",link:n,controller:i}}function r(){return{restrict:"E",require:"^?mdInputContainer",link:function(e,t,n,i){i&&!n.mdNoFloat&&(i.label=t,e.$on("$destroy",function(){i.label=null}))}}}function l(e,n,i){function r(r,l,o,a){function u(e){return d.setHasValue(!f.$isEmpty(e)),e}function s(){d.setHasValue(l.val().length>0||(l[0].validity||{}).badInput)}function c(){function i(e){return c(),e}function o(){s.style.height="auto",s.scrollTop=0;var e=a();e&&(s.style.height=e+"px")}function a(){var e=s.scrollHeight-s.offsetHeight;return s.offsetHeight+(e>0?e:0)}function u(e){s.scrollTop=0;var t=s.scrollHeight-s.offsetHeight,n=s.offsetHeight+t;s.style.height=n+"px"}var s=l[0],c=e.debounce(o,1);f?(f.$formatters.push(i),f.$viewChangeListeners.push(i)):c(),l.on("keydown input",c),l.on("scroll",u),t.element(n).on("resize",c),r.$on("$destroy",function(){t.element(n).off("resize",c)})}var d=a[0],f=a[1]||e.fakeNgModel(),m=t.isDefined(o.readonly);if(d){if(d.input)throw new Error("<md-input-container> can only have *one* <input> or <textarea> child element!");d.input=l,d.label||i.expect(l,"aria-label",l.attr("placeholder")),l.addClass("md-input"),l.attr("id")||l.attr("id","input_"+e.nextUid()),"textarea"===l[0].tagName.toLowerCase()&&c();var p=d.isErrorGetter||function(){return f.$invalid&&f.$touched};r.$watch(p,d.setInvalid),f.$parsers.push(u),f.$formatters.push(u),l.on("input",s),m||l.on("focus",function(e){d.setFocused(!0)}).on("blur",function(e){d.setFocused(!1),s()}),r.$on("$destroy",function(){d.setFocused(!1),d.setHasValue(!1),d.input=null})}}return{restrict:"E",require:["^?mdInputContainer","?ngModel"],link:r}}function o(e){function n(n,i,r,l){function o(e){return c.text((i.val()||e||"").length+"/"+a),e}var a,u=l[0],s=l[1],c=t.element('<div class="md-char-counter">');r.$set("ngTrim","false"),s.element.append(c),u.$formatters.push(o),u.$viewChangeListeners.push(o),i.on("input keydown",function(){o()}),n.$watch(r.mdMaxlength,function(n){a=n,t.isNumber(n)&&n>0?(c.parent().length||e.enter(c,s.element,t.element(s.element[0].lastElementChild)),o()):e.leave(c)}),u.$validators["md-maxlength"]=function(e,n){return!t.isNumber(a)||0>a?!0:(e||i.val()||n||"").length<=a}}return{restrict:"A",require:["ngModel","^mdInputContainer"],link:n}}function a(e){function n(n,r,l,o){if(o&&-1==i.indexOf(r[0].nodeName)&&!t.isDefined(o.element.attr("md-no-float"))){var a=l.placeholder;if(r.removeAttr("placeholder"),0==o.element.find("label").length){var u='<label ng-click="delegateClick()">'+a+"</label>";o.element.addClass("md-icon-float"),o.element.prepend(u)}else e.warn("The placeholder='"+a+"' will be ignored since this md-input-container has a child label element.")}}var i=["MD-SELECT"];return{restrict:"A",require:"^^?mdInputContainer",priority:200,link:n}}t.module("material.components.input",["material.core"]).directive("mdInputContainer",i).directive("label",r).directive("input",l).directive("textarea",l).directive("mdMaxlength",o).directive("placeholder",a),i.$inject=["$mdTheming","$parse"],l.$inject=["$mdUtil","$window","$mdAria"],o.$inject=["$animate"],a.$inject=["$log"]}(window,window.angular);
{
"name": "angular-material-list",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7"
"angular-material-core": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -222,9 +222,11 @@ (function( window, angular, undefined ){

if (!hasClick && !proxies.length) {
firstChild.addEventListener('keypress', function(e) {
firstChild && firstChild.addEventListener('keypress', function(e) {
if (e.target.nodeName != 'INPUT' && e.target.nodeName != 'TEXTAREA') {
var keyCode = e.which || e.keyCode;
if (keyCode == $mdConstant.KEY_CODE.SPACE) {
firstChild.click();
e.preventDefault();
e.stopPropagation();
if (firstChild) {
firstChild.click();
e.preventDefault();
e.stopPropagation();
}
}

@@ -273,2 +275,3 @@ }

})(window, window.angular);

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(t,e,n){"use strict";function i(t){return{restrict:"E",compile:function(e){return e[0].setAttribute("role","list"),t}}}function r(t,n,i){var r=["md-checkbox","md-switch"];return{restrict:"E",controller:"MdListController",compile:function(c,o){function a(){for(var t,e,n=["md-switch","md-checkbox"],i=0;e=n[i];++i)if((t=c.find(e)[0])&&!t.hasAttribute("aria-label")){var r=c.find("p")[0];if(!r)return;t.setAttribute("aria-label","Toggle "+r.textContent)}}function l(n){var i;if("div"==n)i=e.element('<div class="md-no-style md-list-item-inner">'),i.append(c.contents()),c.addClass("md-proxy-focus");else{i=e.element('<md-button class="md-no-style"><div class="md-list-item-inner"></div></md-button>');var r=["ng-click","aria-label","ng-disabled"];e.forEach(r,function(t){c[0].hasAttribute(t)&&(i[0].setAttribute(t,c[0].getAttribute(t)),c[0].removeAttribute(t))}),i.children().eq(0).append(c.contents())}if(c[0].setAttribute("tabindex","-1"),c.append(i),f&&f.hasAttribute("ng-click")){t.expect(f,"aria-label");var a=e.element('<md-button class="md-secondary-container md-icon-button">');a.attr("ng-click",f.getAttribute("ng-click")),f.removeAttribute("ng-click"),f.setAttribute("tabindex","-1"),f.classList.remove("md-secondary"),a.append(f),f=a[0]}f&&(f.hasAttribute("ng-click")||o.ngClick&&s(f))&&(c.addClass("md-with-secondary"),c.append(f))}function s(t){return-1!=r.indexOf(t.nodeName.toLowerCase())}function d(t,c,o,a){function l(){var t=c.children();t.length&&!t[0].hasAttribute("ng-click")&&e.forEach(r,function(t){e.forEach(u.querySelectorAll(t),function(t){d.push(t)})})}function s(){(d.length||m)&&(c.addClass("md-clickable"),a.attachRipple(t,e.element(c[0].querySelector(".md-no-style"))))}var d=[],u=c[0].firstElementChild,m=u&&u.hasAttribute("ng-click");l(),s(),c.hasClass("md-proxy-focus")&&d.length&&e.forEach(d,function(n){n=e.element(n),t.mouseActive=!1,n.on("mousedown",function(){t.mouseActive=!0,i(function(){t.mouseActive=!1},100)}).on("focus",function(){t.mouseActive===!1&&c.addClass("md-focused"),n.on("blur",function e(){c.removeClass("md-focused"),n.off("blur",e)})})}),m||d.length||u.addEventListener("keypress",function(t){if("INPUT"!=t.target.nodeName&&"TEXTAREA"!=t.target.nodeName){var e=t.which||t.keyCode;e==n.KEY_CODE.SPACE&&(u.click(),t.preventDefault(),t.stopPropagation())}}),c.off("click"),c.off("keypress"),d.length&&u&&c.children().eq(0).on("click",function(t){u.contains(t.target)&&e.forEach(d,function(n){t.target===n||n.contains(t.target)||e.element(n).triggerHandler("click")})})}var u,m,f=c[0].querySelector(".md-secondary");if(c[0].setAttribute("role","listitem"),o.ngClick)l("button");else{for(var b,h=0;b=r[h];++h)if(m=c[0].querySelector(b)){u=!0;break}u?l("div"):c[0].querySelector("md-button")||c.addClass("md-no-proxy")}return a(),d}}}function c(t,e,n){function i(t,e){var i={};n.attach(t,e,i)}var r=this;r.attachRipple=i}e.module("material.components.list",["material.core"]).controller("MdListController",c).directive("mdList",i).directive("mdListItem",r),i.$inject=["$mdTheming"],r.$inject=["$mdAria","$mdConstant","$timeout"],c.$inject=["$scope","$element","$mdListInkRipple"]}(window,window.angular);
!function(t,e,n){"use strict";function i(t){return{restrict:"E",compile:function(e){return e[0].setAttribute("role","list"),t}}}function r(t,n,i){var r=["md-checkbox","md-switch"];return{restrict:"E",controller:"MdListController",compile:function(c,o){function a(){for(var t,e,n=["md-switch","md-checkbox"],i=0;e=n[i];++i)if((t=c.find(e)[0])&&!t.hasAttribute("aria-label")){var r=c.find("p")[0];if(!r)return;t.setAttribute("aria-label","Toggle "+r.textContent)}}function l(n){var i;if("div"==n)i=e.element('<div class="md-no-style md-list-item-inner">'),i.append(c.contents()),c.addClass("md-proxy-focus");else{i=e.element('<md-button class="md-no-style"><div class="md-list-item-inner"></div></md-button>');var r=["ng-click","aria-label","ng-disabled"];e.forEach(r,function(t){c[0].hasAttribute(t)&&(i[0].setAttribute(t,c[0].getAttribute(t)),c[0].removeAttribute(t))}),i.children().eq(0).append(c.contents())}if(c[0].setAttribute("tabindex","-1"),c.append(i),f&&f.hasAttribute("ng-click")){t.expect(f,"aria-label");var a=e.element('<md-button class="md-secondary-container md-icon-button">');a.attr("ng-click",f.getAttribute("ng-click")),f.removeAttribute("ng-click"),f.setAttribute("tabindex","-1"),f.classList.remove("md-secondary"),a.append(f),f=a[0]}f&&(f.hasAttribute("ng-click")||o.ngClick&&s(f))&&(c.addClass("md-with-secondary"),c.append(f))}function s(t){return-1!=r.indexOf(t.nodeName.toLowerCase())}function d(t,c,o,a){function l(){var t=c.children();t.length&&!t[0].hasAttribute("ng-click")&&e.forEach(r,function(t){e.forEach(u.querySelectorAll(t),function(t){d.push(t)})})}function s(){(d.length||m)&&(c.addClass("md-clickable"),a.attachRipple(t,e.element(c[0].querySelector(".md-no-style"))))}var d=[],u=c[0].firstElementChild,m=u&&u.hasAttribute("ng-click");l(),s(),c.hasClass("md-proxy-focus")&&d.length&&e.forEach(d,function(n){n=e.element(n),t.mouseActive=!1,n.on("mousedown",function(){t.mouseActive=!0,i(function(){t.mouseActive=!1},100)}).on("focus",function(){t.mouseActive===!1&&c.addClass("md-focused"),n.on("blur",function e(){c.removeClass("md-focused"),n.off("blur",e)})})}),m||d.length||u&&u.addEventListener("keypress",function(t){if("INPUT"!=t.target.nodeName&&"TEXTAREA"!=t.target.nodeName){var e=t.which||t.keyCode;e==n.KEY_CODE.SPACE&&u&&(u.click(),t.preventDefault(),t.stopPropagation())}}),c.off("click"),c.off("keypress"),d.length&&u&&c.children().eq(0).on("click",function(t){u.contains(t.target)&&e.forEach(d,function(n){t.target===n||n.contains(t.target)||e.element(n).triggerHandler("click")})})}var u,m,f=c[0].querySelector(".md-secondary");if(c[0].setAttribute("role","listitem"),o.ngClick)l("button");else{for(var b,h=0;b=r[h];++h)if(m=c[0].querySelector(b)){u=!0;break}u?l("div"):c[0].querySelector("md-button")||c.addClass("md-no-proxy")}return a(),d}}}function c(t,e,n){function i(t,e){var i={};n.attach(t,e,i)}var r=this;r.attachRipple=i}e.module("material.components.list",["material.core"]).controller("MdListController",c).directive("mdList",i).directive("mdListItem",r),i.$inject=["$mdTheming"],r.$inject=["$mdAria","$mdConstant","$timeout"],c.$inject=["$scope","$element","$mdListInkRipple"]}(window,window.angular);
{
"name": "angular-material-progressCircular",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7"
"angular-material-core": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(a,i,r){"use strict";function e(a,i){function r(a){return a.attr("aria-valuemin",0),a.attr("aria-valuemax",100),a.attr("role","progressbar"),e}function e(r,e,n){i(e);var d=e[0],s=n.mdDiameter||48,c=s/48;d.style[a.CSS.TRANSFORM]="scale("+c+")",n.$observe("value",function(a){var i=t(a);e.attr("aria-valuenow",i)})}function t(a){return Math.max(0,Math.min(a||0,100))}return{restrict:"E",template:'<div class="md-spinner-wrapper"><div class="md-inner"><div class="md-gap"></div><div class="md-left"><div class="md-half-circle"></div></div><div class="md-right"><div class="md-half-circle"></div></div></div></div>',compile:r}}i.module("material.components.progressCircular",["material.core"]).directive("mdProgressCircular",e),e.$inject=["$mdConstant","$mdTheming"]}(window,window.angular);
{
"name": "angular-material-progressLinear",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7"
"angular-material-core": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(r,e,a){"use strict";function t(r,a,t){function i(r,e,a){return r.attr("aria-valuemin",0),r.attr("aria-valuemax",100),r.attr("role","progressbar"),o}function o(i,o,c){t(o);var s=o[0].querySelector(".md-bar1").style,u=o[0].querySelector(".md-bar2").style,l=e.element(o[0].querySelector(".md-container"));c.$observe("value",function(r){if("query"!=c.mdMode){var e=d(r);o.attr("aria-valuenow",e),u[a.CSS.TRANSFORM]=n[e]}}),c.$observe("mdBufferValue",function(r){s[a.CSS.TRANSFORM]=n[d(r)]}),r(function(){l.addClass("md-ready")})}function d(r){return r>100?100:0>r?0:Math.ceil(r||0)}return{restrict:"E",template:'<div class="md-container"><div class="md-dashed"></div><div class="md-bar md-bar1"></div><div class="md-bar md-bar2"></div></div>',compile:i}}e.module("material.components.progressLinear",["material.core"]).directive("mdProgressLinear",t),t.$inject=["$$rAF","$mdConstant","$mdTheming"];var n=function(){function r(r){var e=r/100,a=(r-100)/2;return"translateX("+a.toString()+"%) scale("+e.toString()+", 1)"}for(var e=new Array(101),a=0;101>a;a++)e[a]=r(a);return e}()}(window,window.angular);
{
"name": "angular-material-radioButton",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7"
"angular-material-core": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(e,t,n){"use strict";function i(e,n,i,r){function o(o,d,a,c){function s(){d.hasClass("md-focused")||d.addClass("md-focused")}function u(i){var r=i.which||i.keyCode;switch(r){case n.KEY_CODE.LEFT_ARROW:case n.KEY_CODE.UP_ARROW:i.preventDefault(),l.selectPrevious(),s();break;case n.KEY_CODE.RIGHT_ARROW:case n.KEY_CODE.DOWN_ARROW:i.preventDefault(),l.selectNext(),s();break;case n.KEY_CODE.ENTER:var o=t.element(e.getClosest(d[0],"form"));o.length>0&&o.triggerHandler("submit")}}i(d);var l=c[0],m=c[1]||e.fakeNgModel();l.init(m),o.mouseActive=!1,d.attr({role:"radiogroup",tabIndex:d.attr("tabindex")||"0"}).on("keydown",u).on("mousedown",function(e){o.mouseActive=!0,r(function(){o.mouseActive=!1},100)}).on("focus",function(){o.mouseActive===!1&&l.$element.addClass("md-focused")}).on("blur",function(){l.$element.removeClass("md-focused")})}function d(e){this._radioButtonRenderFns=[],this.$element=e}function a(){return{init:function(e){this._ngModelCtrl=e,this._ngModelCtrl.$render=t.bind(this,this.render)},add:function(e){this._radioButtonRenderFns.push(e)},remove:function(e){var t=this._radioButtonRenderFns.indexOf(e);-1!==t&&this._radioButtonRenderFns.splice(t,1)},render:function(){this._radioButtonRenderFns.forEach(function(e){e()})},setViewValue:function(e,t){this._ngModelCtrl.$setViewValue(e,t),this.render()},getViewValue:function(){return this._ngModelCtrl.$viewValue},selectNext:function(){return c(this.$element,1)},selectPrevious:function(){return c(this.$element,-1)},setActiveDescendant:function(e){this.$element.attr("aria-activedescendant",e)}}}function c(n,i){var r=e.iterator(n[0].querySelectorAll("md-radio-button"),!0);if(r.count()){var o=function(e){return!t.element(e).attr("disabled")},d=n[0].querySelector("md-radio-button.md-checked"),a=r[0>i?"previous":"next"](d,o)||r.first();t.element(a).triggerHandler("click")}}return d.prototype=a(),{restrict:"E",controller:["$element",d],require:["mdRadioGroup","?ngModel"],link:{pre:o}}}function r(e,t,n){function i(i,o,d,a){function c(e){o[0].hasAttribute("disabled")||i.$apply(function(){a.setViewValue(d.value,e&&e.type)})}function s(){var e=a.getViewValue()==d.value;e!==l&&(l=e,o.attr("aria-checked",e),e?(o.addClass(r),a.setActiveDescendant(o.attr("id"))):o.removeClass(r))}function u(n,i){function r(){return d.id||"radio_"+t.nextUid()}i.ariaId=r(),n.attr({id:i.ariaId,role:"radio","aria-checked":"false"}),e.expectWithText(n,"aria-label")}var l;n(o),u(o,i),a.add(s),d.$observe("value",s),o.on("click",c).on("$destroy",function(){a.remove(s)})}var r="md-checked";return{restrict:"E",require:"^mdRadioGroup",transclude:!0,template:'<div class="md-container" md-ink-ripple md-ink-ripple-checkbox><div class="md-off"></div><div class="md-on"></div></div><div ng-transclude class="md-label"></div>',link:i}}t.module("material.components.radioButton",["material.core"]).directive("mdRadioGroup",i).directive("mdRadioButton",r),i.$inject=["$mdUtil","$mdConstant","$mdTheming","$timeout"],r.$inject=["$mdAria","$mdUtil","$mdTheming"]}(window,window.angular);
{
"name": "angular-material-select",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7",
"angular-material-backdrop": "0.9.7"
"angular-material-core": "0.9.8",
"angular-material-backdrop": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(e,t,n){"use strict";function l(e,l,o,i,r,a,d){function c(r,c){var s=r.find("md-select-label").remove();if(s.length){if(!s[0].firstElementChild){var u=t.element("<span>");u.append(s.contents()),s.append(u)}}else s=t.element("<md-select-label><span></span></md-select-label>");if(s.append('<span class="md-select-icon" aria-hidden="true"></span>'),s.addClass("md-select-label"),s[0].hasAttribute("id")||s.attr("id","select_label_"+l.nextUid()),r.find("md-content").length||r.append(t.element("<md-content>").append(r.contents())),c.mdOnOpen&&r.find("md-content").prepend(t.element("<md-progress-circular>").attr("md-mode","indeterminate").attr("ng-hide","$$loadingAsyncDone").wrap("<div>").parent()),c.name){var p=t.element('<select class="md-visually-hidden">');p.attr({name:"."+c.name,"ng-model":c.ngModel,"aria-hidden":"true",tabindex:"-1"});var f=r.find("md-option");t.forEach(f,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")),p.append(n)}),r.parent().append(p)}var m='<div class="md-select-menu-container"><md-select-menu '+(t.isDefined(c.multiple)?"multiple":"")+">"+r.html()+"</md-select-menu></div>";return r.empty().append(s),c.tabindex=c.tabindex||"0",function(r,c,s,u){function p(){var e=c.attr("placeholder");e||(e=c.find("md-select-label").text()),i.expect(c,"aria-label",e)}function f(){y&&(w=w||y.find("md-select-menu").controller("mdSelectMenu"),E.setLabelText(w.selectedLabels()))}function h(){y=t.element(m);var e=y.find("md-select-menu");e.data("$ngModelController",k),e.data("$mdSelectController",E),C=r.$new(),y=a(y)(C),w=y.find("md-select-menu").controller("mdSelectMenu")}function g(e){var n=[32,13,38,40];if(-1!=n.indexOf(e.keyCode))e.preventDefault(),v(e);else if(e.keyCode<=90&&e.keyCode>=31){e.preventDefault();var l=w.optNodeForKeyboardSearch(e);if(!l)return;var o=t.element(l).controller("mdOption");w.isMultiple||w.deselect(Object.keys(w.selected)[0]),w.select(o.hashKey,o.value),w.refreshViewValue(),k.$render()}}function v(){r.$evalAsync(function(){$=!0,e.show({scope:C,preserveScope:!0,skipCompile:!0,element:y,target:c[0],hasBackdrop:!0,loadingAsync:s.mdOnOpen?r.$eval(s.mdOnOpen)||!0:!1}).then(function(e){$=!1})})}var $,b,y,C,w,E=u[0],k=u[1],S=u[2],x=c.find("md-select-label"),M=0!==x.text().length;if(h(),o(c),s.name&&S){var O=c.parent()[0].querySelector('select[name=".'+s.name+'"]');S.$removeControl(t.element(O).controller())}var A=k.$render;k.$render=function(){A(),f()},E.setLabelText=function(e){if(!M){E.setIsPlaceholder(!e),e=e||s.placeholder||"";var t=M?x:x.children().eq(0);t.text(e)}},E.setIsPlaceholder=function(e){e?x.addClass("md-placeholder"):x.removeClass("md-placeholder")},r.$$postDigest(function(){p(),f()});var D;s.$observe("ngMultiple",function(e){D&&D();var t=d(e);D=r.$watch(function(){return t(r)},function(e,t){(e!==n||t!==n)&&(e?c.attr("multiple","multiple"):c.removeAttr("multiple"),y&&(w.setMultiple(e),A=k.$render,k.$render=function(){A(),f()},w.refreshViewValue(),k.$render()))})}),s.$observe("disabled",function(e){"string"==typeof e&&(e=!0),(b===n||b!==e)&&(b=e,e?(c.attr({tabindex:-1,"aria-disabled":"true"}),c.off("click",v),c.off("keydown",g)):(c.attr({tabindex:s.tabindex,"aria-disabled":"false"}),c.on("click",v),c.on("keydown",g)))}),s.disabled||s.ngDisabled||(c.attr({tabindex:s.tabindex,"aria-disabled":"false"}),c.on("click",v),c.on("keydown",g));var R={role:"combobox","aria-expanded":"false"};c[0].hasAttribute("id")||(R.id="select_"+l.nextUid()),c.attr(R),r.$on("$destroy",function(){$?e.cancel().then(function(){y.remove()}):y.remove()})}}return{restrict:"E",require:["mdSelect","ngModel","?^form"],compile:c,controller:function(){}}}function o(e,l,o){function i(e,n,i,r){function a(){n.attr({id:"select_menu_"+l.nextUid(),role:"listbox","aria-multiselectable":s.isMultiple?"true":"false"})}function d(e){(13==e.keyCode||32==e.keyCode)&&c(e)}function c(n){var o=l.getClosest(n.target,"md-option"),i=o&&t.element(o).data("$mdOptionController");if(o&&i){var r=s.hashGetter(i.value),a=t.isDefined(s.selected[r]);e.$apply(function(){s.isMultiple?a?s.deselect(r):s.select(r,i.value):a||(s.deselect(Object.keys(s.selected)[0]),s.select(r,i.value)),s.refreshViewValue()})}}var s=r[0],u=r[1];o(n),n.on("click",c),n.on("keypress",d),u&&s.init(u),a()}function r(l,o,i){function r(){var e=c.ngModel.$modelValue||c.ngModel.$viewValue;if(t.isArray(e)){var n=Object.keys(c.selected),l=e.map(c.hashGetter),o=n.filter(function(e){return-1===l.indexOf(e)});o.forEach(c.deselect),l.forEach(function(t,n){c.select(t,e[n])})}}function a(){var e=c.ngModel.$viewValue||c.ngModel.$modelValue;Object.keys(c.selected).forEach(c.deselect),c.select(c.hashGetter(e),e)}var c=this;c.isMultiple=t.isDefined(o.multiple),c.selected={},c.options={},l.$watch(function(){return c.options},function(){c.ngModel.$render()},!0);var u;c.setMultiple=function(e){function n(e,n){return t.isArray(e||n||[])}var i=c.ngModel;c.isMultiple=e,u&&u(),c.isMultiple?(i.$validators["md-multiple"]=n,i.$render=r,l.$watchCollection(o.ngModel,function(e){n(e)&&r(e)})):(delete i.$validators["md-multiple"],i.$render=a)};var p,f,m,h="",g=300;c.optNodeForKeyboardSearch=function(e){p&&clearTimeout(p),p=setTimeout(function(){p=n,h="",m=n,f=n},g),h+=String.fromCharCode(e.keyCode);var l=new RegExp("^"+h,"i");f||(f=i.find("md-option"),m=new Array(f.length),t.forEach(f,function(e,t){m[t]=e.textContent.trim()}));for(var o=0;o<m.length;++o)if(l.test(m[o]))return f[o]},c.init=function(n){if(c.ngModel=n,n.$options&&n.$options.trackBy){var o={},i=e(n.$options.trackBy);c.hashGetter=function(e,t){return o.$value=e,i(t||l,o)}}else c.hashGetter=function(e){return t.isObject(e)?"object_"+(e.$$mdSelectId||(e.$$mdSelectId=++s)):e};c.setMultiple(c.isMultiple)},c.selectedLabels=function(){var e=d(i[0].querySelectorAll("md-option[selected]"));return e.length?e.map(function(e){return e.textContent}).join(", "):""},c.select=function(e,t){var n=c.options[e];n&&n.setSelected(!0),c.selected[e]=t},c.deselect=function(e){var t=c.options[e];t&&t.setSelected(!1),delete c.selected[e]},c.addOption=function(e,n){if(t.isDefined(c.options[e]))throw new Error('Duplicate md-option values are not allowed in a select. Duplicate value "'+n.value+'" found.');c.options[e]=n,t.isDefined(c.selected[e])&&(c.select(e,n.value),c.refreshViewValue())},c.removeOption=function(e){delete c.options[e]},c.refreshViewValue=function(){var e,t=[];for(var n in c.selected)t.push((e=c.options[n])?e.value:c.selected[n]);c.ngModel.$setViewValue(c.isMultiple?t:t[0])}}return r.$inject=["$scope","$attrs","$element"],{restrict:"E",require:["mdSelectMenu","?ngModel"],controller:r,link:{pre:i}}}function i(e,n){function l(e,n){return e.append(t.element('<div class="md-text">').append(e.contents())),e.attr("tabindex",n.tabindex||"0"),o}function o(l,o,i,r){function a(e,t){var n=s.hashGetter(t,l),o=s.hashGetter(e,l);c.hashKey=o,c.value=e,s.removeOption(n,c),s.addOption(o,c)}function d(){var e={role:"option","aria-selected":"false"};o[0].hasAttribute("id")||(e.id="select_option_"+n.nextUid()),o.attr(e)}var c=r[0],s=r[1];t.isDefined(i.ngValue)?l.$watch(i.ngValue,a):t.isDefined(i.value)?a(i.value):l.$watch(function(){return o.text()},a),l.$$postDigest(function(){i.$observe("selected",function(e){t.isDefined(e)&&(e?(s.isMultiple||s.deselect(Object.keys(s.selected)[0]),s.select(c.hashKey,c.value)):s.deselect(c.hashKey),s.refreshViewValue(),s.ngModel.$render())})}),e.attach(l,o),d(),l.$on("$destroy",function(){s.removeOption(c.hashKey,c)})}function i(e){this.selected=!1,this.setSelected=function(t){t&&!this.selected?e.attr({selected:"selected","aria-selected":"true"}):!t&&this.selected&&(e.removeAttr("selected"),e.attr("aria-selected","false")),this.selected=t}}return i.$inject=["$element"],{restrict:"E",require:["mdOption","^^mdSelectMenu"],controller:i,compile:l}}function r(){function e(e,n){var l=e.find("label");l.length||(l=t.element("<label>"),e.prepend(l)),n.label&&l.text(n.label)}return{restrict:"E",compile:e}}function a(e){function l(e,l,r,a,s,u,p){function f(n,o,i){function c(){i.target.attr("aria-expanded","true")}function f(){function t(e){var t=d(m),n=t.indexOf(i.focusedNode);-1===n?n=0:"next"===e&&n<t.length-1?n++:"prev"===e&&n>0&&n--;var l=i.focusedNode=t[n];l&&l.focus()}function r(){t("next")}function c(){t("prev")}function s(){u.isMultiple||(i.restoreFocus=!0,n.$evalAsync(function(){e.hide(u.ngModel.$viewValue)}))}if(!i.isRemoved){var u=i.selectEl.controller("mdSelectMenu")||{};o.addClass("md-clickable"),i.backdrop&&i.backdrop.on("click",function(t){t.preventDefault(),t.stopPropagation(),i.restoreFocus=!1,n.$apply(e.cancel)}),i.selectEl.on("keydown",function(t){switch(t.keyCode){case l.KEY_CODE.SPACE:case l.KEY_CODE.ENTER:var o=a.getClosest(t.target,"md-option");o&&(i.selectEl.triggerHandler({type:"click",target:o}),t.preventDefault());break;case l.KEY_CODE.TAB:case l.KEY_CODE.ESCAPE:t.preventDefault(),i.restoreFocus=!0,n.$apply(e.cancel)}}),i.selectEl.on("keydown",function(e){switch(e.keyCode){case l.KEY_CODE.UP_ARROW:return c();case l.KEY_CODE.DOWN_ARROW:return r();default:if(e.keyCode>=31&&e.keyCode<=90){var t=i.selectEl.controller("mdSelectMenu").optNodeForKeyboardSearch(e);t&&t.focus()}}}),i.selectEl.on("click",s),i.selectEl.on("keydown",function(e){(32==e.keyCode||13==e.keyCode)&&s()})}}if(!i.target)throw new Error('$mdSelect.show() expected a target element in options.target but got "'+i.target+'"!');t.extend(i,{isRemoved:!1,target:t.element(i.target),parent:t.element(i.parent),selectEl:o.find("md-select-menu"),contentEl:o.find("md-content"),backdrop:i.hasBackdrop&&t.element('<md-backdrop class="md-select-backdrop md-click-catcher">')}),i.resizeFn=function(){r(function(){r(function(){h(n,o,i)})})},t.element(p).on("resize",i.resizeFn),t.element(p).on("orientationchange",i.resizeFn),c(),o.removeClass("md-leave");var m=i.selectEl[0].getElementsByTagName("md-option");return i.loadingAsync&&i.loadingAsync.then?i.loadingAsync.then(function(){n.$$loadingAsyncDone=!0,r(function(){r(function(){i.isRemoved||h(n,o,i)})})}):i.loadingAsync&&(n.$$loadingAsyncDone=!0),i.disableParentScroll&&!a.getClosest(i.target,"MD-DIALOG")?i.restoreScroll=a.disableScrollAround(i.target):i.disableParentScroll=!1,u(f,75,!1),i.backdrop&&(s.inherit(i.backdrop,i.parent),i.parent.append(i.backdrop)),i.parent.append(o),r(function(){r(function(){i.isRemoved||h(n,o,i)})}),a.transitionEndPromise(i.selectEl,{timeout:350})}function m(e,l,o){o.isRemoved=!0,l.addClass("md-leave").removeClass("md-clickable"),o.target.attr("aria-expanded","false"),t.element(p).off("resize",o.resizeFn),t.element(p).off("orientationchange",o.resizefn),o.resizeFn=n;var i=o.selectEl.controller("mdSelect");return i&&i.setLabelText(o.selectEl.controller("mdSelectMenu").selectedLabels()),a.transitionEndPromise(l,{timeout:350}).then(function(){l.removeClass("md-active"),o.backdrop&&o.backdrop.remove(),l[0].parentNode===o.parent[0]&&o.parent[0].removeChild(l[0]),o.disableParentScroll&&o.restoreScroll(),o.restoreFocus&&o.target.focus()})}function h(e,t,n){var d,s=t[0],u=n.target[0].firstElementChild.firstElementChild,f=n.parent[0],m=n.selectEl[0],h=n.contentEl[0],g=f.getBoundingClientRect(),v=u.getBoundingClientRect(),$=!1,b={left:g.left+c,top:c,bottom:g.height-c,right:g.width-c-(a.floatingScrollbars()?16:0)},y={top:v.top-b.top,left:v.left-b.left,right:b.right-(v.left+v.width),bottom:b.bottom-(v.top+v.height)},C=g.width-2*c,w=h.scrollHeight>h.offsetHeight,E=m.querySelector("md-option[selected]"),k=m.getElementsByTagName("md-option"),S=m.getElementsByTagName("md-optgroup");d=E?E:S.length?S[0]:k.length?k[0]:h.firstElementChild||h,h.offsetWidth>C&&(h.style["max-width"]=C+"px"),$&&(h.style["min-width"]=v.width+"px"),w&&m.classList.add("md-overflow");var x=m.getBoundingClientRect(),M=i(d);if(d){var O=p.getComputedStyle(d);M.paddingLeft=parseInt(O.paddingLeft,10)||0,M.paddingRight=parseInt(O.paddingRight,10)||0}var A=d;if("MD-OPTGROUP"===(A.tagName||"").toUpperCase()&&(A=k[0]||h.firstElementChild||h),w){var D=h.offsetHeight/2;h.scrollTop=M.top+M.height/2-D,y.top<D?h.scrollTop=Math.min(M.top,h.scrollTop+D-y.top):y.bottom<D&&(h.scrollTop=Math.max(M.top+M.height-x.height,h.scrollTop-D+y.bottom))}var R,T,V;$?(R=v.left,T=v.top+v.height,V="50% 0",T+x.height>b.bottom&&(T=v.top-x.height,V="50% 100%")):(R=v.left+M.left-M.paddingLeft,T=Math.floor(v.top+v.height/2-M.height/2-M.top+h.scrollTop),V=M.left+v.width/2+"px "+(M.top+M.height/2-h.scrollTop)+"px 0px",s.style.minWidth=v.width+M.paddingLeft+M.paddingRight+"px");var N=s.getBoundingClientRect();s.style.left=o(b.left,R,b.right-N.width)+"px",s.style.top=o(b.top,T,b.bottom-N.height)+"px",m.style[l.CSS.TRANSFORM_ORIGIN]=V,m.style[l.CSS.TRANSFORM]="scale("+Math.min(v.width/x.width,1)+","+Math.min(v.height/x.height,1)+")",r(function(){t.addClass("md-active"),m.style[l.CSS.TRANSFORM]="",A&&(n.focusedNode=A,A.focus())})}return{parent:"body",onShow:f,onRemove:m,hasBackdrop:!0,disableParentScroll:!0,themable:!0}}function o(e,t,n){return Math.max(e,Math.min(t,n))}function i(e){return e?{left:e.offsetLeft,top:e.offsetTop,width:e.offsetWidth,height:e.offsetHeight}:{left:0,top:0,width:0,height:0}}return l.$inject=["$mdSelect","$mdConstant","$$rAF","$mdUtil","$mdTheming","$timeout","$window"],e("$mdSelect").setDefaults({methods:["target"],options:l})}function d(e){for(var t=[],n=0;n<e.length;++n)t.push(e.item(n));return t}var c=8,s=0;t.module("material.components.select",["material.core","material.components.backdrop"]).directive("mdSelect",l).directive("mdSelectMenu",o).directive("mdOption",i).directive("mdOptgroup",r).provider("$mdSelect",a),l.$inject=["$mdSelect","$mdUtil","$mdTheming","$mdAria","$interpolate","$compile","$parse"],o.$inject=["$parse","$mdUtil","$mdTheming"],i.$inject=["$mdButtonInkRipple","$mdUtil"],a.$inject=["$$interimElementProvider"]}(window,window.angular);
{
"name": "angular-material-sidenav",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7",
"angular-material-backdrop": "0.9.7"
"angular-material-core": "0.9.8",
"angular-material-backdrop": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(e,n,t){"use strict";function o(e,t){return function(o){function r(){return e.when(o).then(function(e){return s=e,e})}var i,c="SideNav '"+o+"' is not available!",s=e.get(o);return s||e.notFoundError(o),i={isOpen:function(){return s&&s.isOpen()},isLockedOpen:function(){return s&&s.isLockedOpen()},toggle:function(){return s?s.toggle():t.reject(c)},open:function(){return s?s.open():t.reject(c)},close:function(){return s?s.close():t.reject(c)},then:function(e){var o=s?t.when(s):r();return o.then(e||n.noop)}}}}function r(){return{restrict:"A",require:"^mdSidenav",link:function(e,n,t,o){o.focusElement(n)}}}function i(e,o,r,i,c,s,d,u,a,l){function f(f,p,m,$){function v(e,n){f.isLockedOpen=e,e===n?p.toggleClass("md-locked-open",!!e):o[e?"addClass":"removeClass"](p,"md-locked-open"),L.toggleClass("md-locked-open",!!e)}function g(e){var n=p.parent();n[e?"on":"off"]("keydown",k),L[e?"on":"off"]("click",w),e&&(E=l[0].activeElement);var t=$.focusElement();return O(e),y=a.all([e?o.enter(L,n):o.leave(L),o[e?"removeClass":"addClass"](p,"md-closed")]).then(function(){f.isOpen&&t&&t.focus()})}function O(e){var o=p.parent();e?(C=o.css("overflow"),o.css("overflow","hidden")):n.isDefined(C)&&(o.css("overflow",C),C=t)}function h(n){if(f.isOpen==n)return a.when(!0);var t=a.defer();return f.isOpen=n,e(function(){y.then(function(e){f.isOpen||(E&&E.focus(),E=null),t.resolve(e)})},0,!1),t.promise}function k(e){var n=e.keyCode===s.KEY_CODE.ESCAPE;return n?w(e):a.when(!0)}function w(e){return e.preventDefault(),e.stopPropagation(),$.close()}var C,E=null,y=a.when(!0),S=r(m.mdIsLockedOpen),j=function(){return S(f.$parent,{$media:function(e){return i.warn("$media is deprecated for is-locked-open. Use $mdMedia instead."),c(e)},$mdMedia:c})},L=d('<md-backdrop class="md-sidenav-backdrop md-opaque ng-enter">')(f);p.on("$destroy",$.destroy),u.inherit(L,p),f.$watch(j,v),f.$watch("isOpen",g),$.$toggleOpen=h,$.focusElement($.focusElement()||p)}return{restrict:"E",scope:{isOpen:"=?mdIsOpen"},controller:"$mdSidenavController",compile:function(e){return e.addClass("md-closed"),e.attr("tabIndex","-1"),f}}}function c(e,t,o,r,i){var c,s=this;s.isOpen=function(){return!!e.isOpen},s.isLockedOpen=function(){return!!e.isLockedOpen},s.open=function(){return s.$toggleOpen(!0)},s.close=function(){return s.$toggleOpen(!1)},s.toggle=function(){return s.$toggleOpen(!e.isOpen)},s.focusElement=function(e){return n.isDefined(e)&&(c=e),c},s.$toggleOpen=function(){return i.when(e.isOpen)},s.destroy=r.register(s,o.mdComponentId)}n.module("material.components.sidenav",["material.core","material.components.backdrop"]).factory("$mdSidenav",o).directive("mdSidenav",i).directive("mdSidenavFocus",r).controller("$mdSidenavController",c),o.$inject=["$mdComponentRegistry","$q"],i.$inject=["$timeout","$animate","$parse","$log","$mdMedia","$mdConstant","$compile","$mdTheming","$q","$document"],c.$inject=["$scope","$element","$attrs","$mdComponentRegistry","$q"]}(window,window.angular);
{
"name": "angular-material-slider",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7"
"angular-material-core": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -124,5 +124,5 @@ (function( window, angular, undefined ){

// Default values, overridable by attrs
attr.min ? attr.$observe('min', updateMin) : updateMin(0);
attr.max ? attr.$observe('max', updateMax) : updateMax(100);
attr.step ? attr.$observe('step', updateStep) : updateStep(1);
angular.isDefined(attr.min) ? attr.$observe('min', updateMin) : updateMin(0);
angular.isDefined(attr.max) ? attr.$observe('max', updateMax) : updateMax(100);
angular.isDefined(attr.step)? attr.$observe('step', updateStep) : updateStep(1);

@@ -283,3 +283,5 @@ // We have to manually stop the $watch on ngDisabled because it exists

if (angular.isNumber(value)) {
return Math.round(value / step) * step;
var formattedValue = (Math.round(value / step) * step);
// Format to 3 digits after the decimal point - fixes #2015.
return (Math.round(formattedValue * 1000) / 1000);
}

@@ -286,0 +288,0 @@ }

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(e,t,n){"use strict";function i(e,n,i,a,r,o,s,d){function l(e,t){return e.attr({tabIndex:0,role:"slider"}),i.expect(e,"aria-label"),u}function u(i,l,u,c){function m(){g(),x(),h()}function f(e){H=parseFloat(e),l.attr("aria-valuemin",e),m()}function v(e){U=parseFloat(e),l.attr("aria-valuemax",e),m()}function p(e){J=parseFloat(e),h()}function $(e){l.attr("aria-disabled",!!e)}function h(){if(t.isDefined(u.mdDiscrete)){var e=Math.floor((U-H)/J);if(!Q){var i=n.getComputedStyle(W[0]);Q=t.element('<canvas style="position:absolute;">'),X=Q[0].getContext("2d"),X.fillStyle=i.backgroundColor||"black",W.append(Q)}var a=w();Q[0].width=a.width,Q[0].height=a.height;for(var r,o=0;e>=o;o++)r=Math.floor(a.width*(o/e)),X.fillRect(r-1,0,2,a.height)}}function g(){Z=G[0].getBoundingClientRect()}function w(){return Y(),Z}function b(e){if(!l[0].hasAttribute("disabled")){var t;e.keyCode===r.KEY_CODE.LEFT_ARROW?t=-J:e.keyCode===r.KEY_CODE.RIGHT_ARROW&&(t=J),t&&((e.metaKey||e.ctrlKey||e.altKey)&&(t*=4),e.preventDefault(),e.stopPropagation(),i.$evalAsync(function(){y(c.$viewValue+t)}))}}function y(e){c.$setViewValue(C(k(e)))}function x(){isNaN(c.$viewValue)&&(c.$viewValue=c.$modelValue);var e=(c.$viewValue-H)/(U-H);i.modelValue=c.$viewValue,l.attr("aria-valuenow",c.$viewValue),V(e),_.text(c.$viewValue)}function C(e){return t.isNumber(e)?Math.max(H,Math.min(U,e)):void 0}function k(e){return t.isNumber(e)?Math.round(e/J)*J:void 0}function V(e){I.css("width",100*e+"%"),z.css("left",100*e+"%"),l.toggleClass("md-min",0===e)}function D(e){if(!P()){l.addClass("active"),l[0].focus(),g();var t=L(K(e.pointer.x)),n=C(k(t));i.$apply(function(){y(n),V(N(n))})}}function M(e){if(!P()){l.removeClass("dragging active");var t=L(K(e.pointer.x)),n=C(k(t));i.$apply(function(){y(n),x()})}}function S(e){P()||(ee=!0,e.stopPropagation(),l.addClass("dragging"),q(e))}function A(e){ee&&(e.stopPropagation(),q(e))}function R(e){ee&&(e.stopPropagation(),ee=!1)}function q(e){te?F(e.pointer.x):E(e.pointer.x)}function E(e){i.$evalAsync(function(){y(L(K(e)))})}function F(e){var t=L(K(e)),n=C(k(t));V(K(e)),_.text(n)}function K(e){return Math.max(0,Math.min(1,(e-Z.left)/Z.width))}function L(e){return H+e*(U-H)}function N(e){return(e-H)/(U-H)}o(l),c=c||{$setViewValue:function(e){this.$viewValue=e,this.$viewChangeListeners.forEach(function(e){e()})},$parsers:[],$formatters:[],$viewChangeListeners:[]};var O=u.ngDisabled&&d(u.ngDisabled),P=O?function(){return O(i.$parent)}:t.noop,T=t.element(l[0].querySelector(".md-thumb")),_=t.element(l[0].querySelector(".md-thumb-text")),z=T.parent(),G=t.element(l[0].querySelector(".md-track-container")),I=t.element(l[0].querySelector(".md-track-fill")),W=t.element(l[0].querySelector(".md-track-ticks")),Y=a.throttle(g,5e3);u.min?u.$observe("min",f):f(0),u.max?u.$observe("max",v):v(100),u.step?u.$observe("step",p):p(1);var j=t.noop;u.ngDisabled&&(j=i.$parent.$watch(u.ngDisabled,$)),s.register(l,"drag"),l.on("keydown",b).on("$md.pressdown",D).on("$md.pressup",M).on("$md.dragstart",S).on("$md.drag",A).on("$md.dragend",R),setTimeout(m);var B=e.throttle(m);t.element(n).on("resize",B),i.$on("$destroy",function(){t.element(n).off("resize",B),j()}),c.$render=x,c.$viewChangeListeners.push(x),c.$formatters.push(C),c.$formatters.push(k);var H,U,J,Q,X,Z={};g();var ee=!1,te=t.isDefined(u.mdDiscrete)}return{scope:{},require:"?ngModel",template:'<div class="md-slider-wrapper"> <div class="md-track-container"> <div class="md-track"></div> <div class="md-track md-track-fill"></div> <div class="md-track-ticks"></div> </div> <div class="md-thumb-container"> <div class="md-thumb"></div> <div class="md-focus-thumb"></div> <div class="md-focus-ring"></div> <div class="md-sign"> <span class="md-thumb-text"></span> </div> <div class="md-disabled-thumb"></div> </div> </div>',compile:l}}t.module("material.components.slider",["material.core"]).directive("mdSlider",i),i.$inject=["$$rAF","$window","$mdAria","$mdUtil","$mdConstant","$mdTheming","$mdGesture","$parse"]}(window,window.angular);
!function(e,t,i){"use strict";function n(e,i,n,a,r,o,s,d){function l(e,t){return e.attr({tabIndex:0,role:"slider"}),n.expect(e,"aria-label"),u}function u(n,l,u,c){function m(){g(),x(),h()}function f(e){H=parseFloat(e),l.attr("aria-valuemin",e),m()}function v(e){U=parseFloat(e),l.attr("aria-valuemax",e),m()}function p(e){J=parseFloat(e),h()}function $(e){l.attr("aria-disabled",!!e)}function h(){if(t.isDefined(u.mdDiscrete)){var e=Math.floor((U-H)/J);if(!Q){var n=i.getComputedStyle(W[0]);Q=t.element('<canvas style="position:absolute;">'),X=Q[0].getContext("2d"),X.fillStyle=n.backgroundColor||"black",W.append(Q)}var a=w();Q[0].width=a.width,Q[0].height=a.height;for(var r,o=0;e>=o;o++)r=Math.floor(a.width*(o/e)),X.fillRect(r-1,0,2,a.height)}}function g(){Z=G[0].getBoundingClientRect()}function w(){return Y(),Z}function b(e){if(!l[0].hasAttribute("disabled")){var t;e.keyCode===r.KEY_CODE.LEFT_ARROW?t=-J:e.keyCode===r.KEY_CODE.RIGHT_ARROW&&(t=J),t&&((e.metaKey||e.ctrlKey||e.altKey)&&(t*=4),e.preventDefault(),e.stopPropagation(),n.$evalAsync(function(){y(c.$viewValue+t)}))}}function y(e){c.$setViewValue(C(k(e)))}function x(){isNaN(c.$viewValue)&&(c.$viewValue=c.$modelValue);var e=(c.$viewValue-H)/(U-H);n.modelValue=c.$viewValue,l.attr("aria-valuenow",c.$viewValue),D(e),_.text(c.$viewValue)}function C(e){return t.isNumber(e)?Math.max(H,Math.min(U,e)):void 0}function k(e){if(t.isNumber(e)){var i=Math.round(e/J)*J;return Math.round(1e3*i)/1e3}}function D(e){I.css("width",100*e+"%"),z.css("left",100*e+"%"),l.toggleClass("md-min",0===e)}function V(e){if(!P()){l.addClass("active"),l[0].focus(),g();var t=L(K(e.pointer.x)),i=C(k(t));n.$apply(function(){y(i),D(N(i))})}}function M(e){if(!P()){l.removeClass("dragging active");var t=L(K(e.pointer.x)),i=C(k(t));n.$apply(function(){y(i),x()})}}function S(e){P()||(ee=!0,e.stopPropagation(),l.addClass("dragging"),q(e))}function A(e){ee&&(e.stopPropagation(),q(e))}function R(e){ee&&(e.stopPropagation(),ee=!1)}function q(e){te?F(e.pointer.x):E(e.pointer.x)}function E(e){n.$evalAsync(function(){y(L(K(e)))})}function F(e){var t=L(K(e)),i=C(k(t));D(K(e)),_.text(i)}function K(e){return Math.max(0,Math.min(1,(e-Z.left)/Z.width))}function L(e){return H+e*(U-H)}function N(e){return(e-H)/(U-H)}o(l),c=c||{$setViewValue:function(e){this.$viewValue=e,this.$viewChangeListeners.forEach(function(e){e()})},$parsers:[],$formatters:[],$viewChangeListeners:[]};var O=u.ngDisabled&&d(u.ngDisabled),P=O?function(){return O(n.$parent)}:t.noop,T=t.element(l[0].querySelector(".md-thumb")),_=t.element(l[0].querySelector(".md-thumb-text")),z=T.parent(),G=t.element(l[0].querySelector(".md-track-container")),I=t.element(l[0].querySelector(".md-track-fill")),W=t.element(l[0].querySelector(".md-track-ticks")),Y=a.throttle(g,5e3);t.isDefined(u.min)?u.$observe("min",f):f(0),t.isDefined(u.max)?u.$observe("max",v):v(100),t.isDefined(u.step)?u.$observe("step",p):p(1);var j=t.noop;u.ngDisabled&&(j=n.$parent.$watch(u.ngDisabled,$)),s.register(l,"drag"),l.on("keydown",b).on("$md.pressdown",V).on("$md.pressup",M).on("$md.dragstart",S).on("$md.drag",A).on("$md.dragend",R),setTimeout(m);var B=e.throttle(m);t.element(i).on("resize",B),n.$on("$destroy",function(){t.element(i).off("resize",B),j()}),c.$render=x,c.$viewChangeListeners.push(x),c.$formatters.push(C),c.$formatters.push(k);var H,U,J,Q,X,Z={};g();var ee=!1,te=t.isDefined(u.mdDiscrete)}return{scope:{},require:"?ngModel",template:'<div class="md-slider-wrapper"> <div class="md-track-container"> <div class="md-track"></div> <div class="md-track md-track-fill"></div> <div class="md-track-ticks"></div> </div> <div class="md-thumb-container"> <div class="md-thumb"></div> <div class="md-focus-thumb"></div> <div class="md-focus-ring"></div> <div class="md-sign"> <span class="md-thumb-text"></span> </div> <div class="md-disabled-thumb"></div> </div> </div>',compile:l}}t.module("material.components.slider",["material.core"]).directive("mdSlider",n),n.$inject=["$$rAF","$window","$mdAria","$mdUtil","$mdConstant","$mdTheming","$mdGesture","$parse"]}(window,window.angular);
{
"name": "angular-material-sticky",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7",
"angular-material-content": "0.9.7"
"angular-material-core": "0.9.8",
"angular-material-content": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -165,2 +165,5 @@ (function( window, angular, undefined ){

item.clone.css('margin-left', item.left + 'px');
if ($mdUtil.floatingScrollbars()) {
item.clone.css('margin-right', '0');
}
}

@@ -167,0 +170,0 @@

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(t,e,n){"use strict";function r(t,r,o,l,c){function s(t){function e(t,e){e.addClass("md-sticky-clone"),e.css("top",v+"px");var n={element:t,clone:e};return d.items.push(n),f.parent().prepend(n.clone),m(),function(){d.items.forEach(function(e,n){e.element[0]===t[0]&&(d.items.splice(n,1),e.clone.remove())}),m()}}function o(){d.items.forEach(c),d.items=d.items.sort(function(t,e){return t.top<e.top?-1:1});for(var t,e=f.prop("scrollTop"),n=d.items.length-1;n>=0;n--)if(e>d.items[n].top){t=d.items[n];break}i(t)}function c(t){var e=t.element[0];for(t.top=0,t.left=0;e&&e!==f[0];)t.top+=e.offsetTop,t.left+=e.offsetLeft,e=e.offsetParent;t.height=t.element.prop("offsetHeight"),t.clone.css("margin-left",t.left+"px")}function s(){var t=f.prop("scrollTop"),e=t>(s.prevScrollTop||0);s.prevScrollTop=t,0===t?i(null):e&&d.next?d.next.top-t<=0?i(d.next):d.current&&(d.next.top-t<=d.next.height?p(d.current,d.next.top-d.next.height-t):p(d.current,null)):!e&&d.current&&(t<d.current.top&&i(d.prev),d.current&&d.next&&(t>=d.next.top-d.current.height?p(d.current,d.next.top-t-d.current.height):p(d.current,null)))}function i(t){if(d.current!==t){d.current&&(p(d.current,null),u(d.current,null)),t&&u(t,"active"),d.current=t;var e=d.items.indexOf(t);d.next=d.items[e+1],d.prev=d.items[e-1],u(d.next,"next"),u(d.prev,"prev")}}function u(t,e){t&&t.state!==e&&(t.state&&(t.clone.attr("sticky-prev-state",t.state),t.element.attr("sticky-prev-state",t.state)),t.clone.attr("sticky-state",e),t.element.attr("sticky-state",e),t.state=e)}function p(t,e){t&&(null===e||e===n?t.translateY&&(t.translateY=null,t.clone.css(r.CSS.TRANSFORM,"")):(t.translateY=e,t.clone.css(r.CSS.TRANSFORM,"translate3d("+t.left+"px,"+e+"px,0)")))}var f=t.$element,m=l.throttle(o);a(f),f.on("$scrollstart",m),f.on("$scroll",s);var d,v=f.prop("offsetTop");return d={prev:null,current:null,next:null,items:[],add:e,refreshElements:o}}function i(n){var r,o=e.element("<div>");t[0].body.appendChild(o[0]);for(var l=["sticky","-webkit-sticky"],c=0;c<l.length;++c)if(o.css({position:l[c],top:0,"z-index":2}),o.css("position")==l[c]){r=l[c];break}return o.remove(),r}function a(t){function e(){+c.now()-r>o?(n=!1,t.triggerHandler("$scrollend")):(t.triggerHandler("$scroll"),l(e))}var n,r,o=200;t.on("scroll touchmove",function(){n||(n=!0,l(e),t.triggerHandler("$scrollstart")),t.triggerHandler("$scroll"),r=+c.now()})}var u=i();return function(t,e,n){var r=e.controller("mdContent");if(r)if(u)e.css({position:u,top:0,"z-index":2});else{var o=r.$element.data("$$sticky");o||(o=s(r),r.$element.data("$$sticky",o));var l=o.add(e,n||e.clone());t.$on("$destroy",l)}}}e.module("material.components.sticky",["material.core","material.components.content"]).factory("$mdSticky",r),r.$inject=["$document","$mdConstant","$compile","$$rAF","$mdUtil"]}(window,window.angular);
!function(t,e,n){"use strict";function r(t,r,o,l,c){function s(t){function e(t,e){e.addClass("md-sticky-clone"),e.css("top",$+"px");var n={element:t,clone:e};return v.items.push(n),m.parent().prepend(n.clone),d(),function(){v.items.forEach(function(e,n){e.element[0]===t[0]&&(v.items.splice(n,1),e.clone.remove())}),d()}}function o(){v.items.forEach(s),v.items=v.items.sort(function(t,e){return t.top<e.top?-1:1});for(var t,e=m.prop("scrollTop"),n=v.items.length-1;n>=0;n--)if(e>v.items[n].top){t=v.items[n];break}u(t)}function s(t){var e=t.element[0];for(t.top=0,t.left=0;e&&e!==m[0];)t.top+=e.offsetTop,t.left+=e.offsetLeft,e=e.offsetParent;t.height=t.element.prop("offsetHeight"),t.clone.css("margin-left",t.left+"px"),c.floatingScrollbars()&&t.clone.css("margin-right","0")}function i(){var t=m.prop("scrollTop"),e=t>(i.prevScrollTop||0);i.prevScrollTop=t,0===t?u(null):e&&v.next?v.next.top-t<=0?u(v.next):v.current&&(v.next.top-t<=v.next.height?f(v.current,v.next.top-v.next.height-t):f(v.current,null)):!e&&v.current&&(t<v.current.top&&u(v.prev),v.current&&v.next&&(t>=v.next.top-v.current.height?f(v.current,v.next.top-t-v.current.height):f(v.current,null)))}function u(t){if(v.current!==t){v.current&&(f(v.current,null),p(v.current,null)),t&&p(t,"active"),v.current=t;var e=v.items.indexOf(t);v.next=v.items[e+1],v.prev=v.items[e-1],p(v.next,"next"),p(v.prev,"prev")}}function p(t,e){t&&t.state!==e&&(t.state&&(t.clone.attr("sticky-prev-state",t.state),t.element.attr("sticky-prev-state",t.state)),t.clone.attr("sticky-state",e),t.element.attr("sticky-state",e),t.state=e)}function f(t,e){t&&(null===e||e===n?t.translateY&&(t.translateY=null,t.clone.css(r.CSS.TRANSFORM,"")):(t.translateY=e,t.clone.css(r.CSS.TRANSFORM,"translate3d("+t.left+"px,"+e+"px,0)")))}var m=t.$element,d=l.throttle(o);a(m),m.on("$scrollstart",d),m.on("$scroll",i);var v,$=m.prop("offsetTop");return v={prev:null,current:null,next:null,items:[],add:e,refreshElements:o}}function i(n){var r,o=e.element("<div>");t[0].body.appendChild(o[0]);for(var l=["sticky","-webkit-sticky"],c=0;c<l.length;++c)if(o.css({position:l[c],top:0,"z-index":2}),o.css("position")==l[c]){r=l[c];break}return o.remove(),r}function a(t){function e(){+c.now()-r>o?(n=!1,t.triggerHandler("$scrollend")):(t.triggerHandler("$scroll"),l(e))}var n,r,o=200;t.on("scroll touchmove",function(){n||(n=!0,l(e),t.triggerHandler("$scrollstart")),t.triggerHandler("$scroll"),r=+c.now()})}var u=i();return function(t,e,n){var r=e.controller("mdContent");if(r)if(u)e.css({position:u,top:0,"z-index":2});else{var o=r.$element.data("$$sticky");o||(o=s(r),r.$element.data("$$sticky",o));var l=o.add(e,n||e.clone());t.$on("$destroy",l)}}}e.module("material.components.sticky",["material.core","material.components.content"]).factory("$mdSticky",r),r.$inject=["$document","$mdConstant","$compile","$$rAF","$mdUtil"]}(window,window.angular);
{
"name": "angular-material-subheader",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7",
"angular-material-sticky": "0.9.7"
"angular-material-core": "0.9.8",
"angular-material-sticky": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(e,n,t){"use strict";function r(e,t,r){return{restrict:"E",replace:!0,transclude:!0,template:'<h2 class="md-subheader"><div class="md-subheader-inner"><span class="md-subheader-content"></span></div></h2>',compile:function(a,c,i){return function(a,c,s){function d(e){return n.element(e[0].querySelector(".md-subheader-content"))}r(c);var o=c[0].outerHTML;i(a,function(e){d(c).append(e)}),c.hasClass("md-no-sticky")||i(a,function(r){var i=t(n.element(o))(a);d(i).append(r),e(a,c,i)})}}}}n.module("material.components.subheader",["material.core","material.components.sticky"]).directive("mdSubheader",r),r.$inject=["$mdSticky","$compile","$mdTheming"]}(window,window.angular);
{
"name": "angular-material-swipe",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7"
"angular-material-core": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(e,i,t){"use strict";function n(e){function i(e){function i(i,r,o){var c=e(o[t]);r.on(n,function(e){i.$apply(function(){c(i,{$event:e})})})}return{restrict:"A",link:i}}var t="md"+e,n="$md."+e.toLowerCase();return i.$inject=["$parse"],i}i.module("material.components.swipe",["material.core"]).directive("mdSwipeLeft",n("SwipeLeft")).directive("mdSwipeRight",n("SwipeRight"))}(window,window.angular);
{
"name": "angular-material-switch",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7",
"angular-material-checkbox": "0.9.7"
"angular-material-core": "0.9.8",
"angular-material-checkbox": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(e,t,n){"use strict";function a(e,n,a,i,r,d,o,s){function c(e,n){var i=l.compile(e,n);return e.addClass("md-dragging"),function(e,n,c,l){function m(t){p(e)||(t.stopPropagation(),n.addClass("md-dragging"),h={width:$.prop("offsetWidth")},n.removeClass("transition"))}function u(e){if(h){e.stopPropagation(),e.srcEvent&&e.srcEvent.preventDefault();var t=e.pointer.distanceX/h.width,n=l.$viewValue?1+t:t;n=Math.max(0,Math.min(1,n)),$.css(r.CSS.TRANSFORM,"translate3d("+100*n+"%,0,0)"),h.translate=n}}function g(e){if(h){e.stopPropagation(),n.removeClass("md-dragging"),$.css(r.CSS.TRANSFORM,"");var t=l.$viewValue?h.translate<.5:h.translate>.5;t&&v(!l.$viewValue),h=null}}function v(t){e.$apply(function(){l.$setViewValue(t),l.$render()})}l=l||a.fakeNgModel();var p=d(c.ngDisabled),$=t.element(n[0].querySelector(".md-thumb-container")),f=t.element(n[0].querySelector(".md-container"));o(function(){n.removeClass("md-dragging")}),i(e,n,c,l),t.isDefined(c.ngDisabled)&&e.$watch(p,function(e){n.attr("tabindex",e?-1:0)}),s.register(f,"drag"),f.on("$md.dragstart",m).on("$md.drag",u).on("$md.dragend",g);var h}}var l=e[0];return{restrict:"E",priority:210,transclude:!0,template:'<div class="md-container"><div class="md-bar"></div><div class="md-thumb-container"><div class="md-thumb" md-ink-ripple md-ink-ripple-checkbox></div></div></div><div ng-transclude class="md-label"></div>',require:"?ngModel",compile:c}}t.module("material.components.switch",["material.core","material.components.checkbox"]).directive("mdSwitch",a),a.$inject=["mdCheckboxDirective","$mdTheming","$mdUtil","$document","$mdConstant","$parse","$$rAF","$mdGesture"]}(window,window.angular);
{
"name": "angular-material-tabs",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7",
"angular-material-icon": "0.9.7"
"angular-material-core": "0.9.8",
"angular-material-icon": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -107,3 +107,3 @@ (function( window, angular, undefined ){

function getLabel () {
return getLabelAttribute() || getLabelElement() || getElementContents();
return getLabelElement() || getLabelAttribute() || getElementContents();
function getLabelAttribute () { return attr.label; }

@@ -141,2 +141,4 @@ function getLabelElement () {

index = Array.prototype.indexOf.call(tabs, element[0]),
body = element.find('md-tab-body').remove(),
label = element.find('md-tab-label').remove(),
data = ctrl.insertTab({

@@ -147,4 +149,4 @@ scope: scope,

element: element,
template: element.find('md-tab-body').html(),
label: element.find('md-tab-label').html()
template: body.html(),
label: label.html()
}, index);

@@ -221,6 +223,7 @@

$mdUtil, $animate) {
var ctrl = this,
locked = false,
elements = getElements(),
queue = [];
var ctrl = this,
locked = false,
elements = getElements(),
queue = [],
destroyed = false;

@@ -271,2 +274,3 @@ ctrl.scope = $scope;

function cleanup () {
destroyed = true;
angular.element($window).off('resize', handleWindowResize);

@@ -395,3 +399,3 @@ angular.element(elements.paging).off('DOMSubtreeModified', ctrl.updateInkBarStyles);

// tab select/deselect events
if ($scope.selectedIndex === selectedIndex) {
if ($scope.selectedIndex === selectedIndex && !destroyed) {
tab.scope.deselect();

@@ -411,2 +415,3 @@ ctrl.tabs[$scope.selectedIndex] && ctrl.tabs[$scope.selectedIndex].scope.select();

isRight: function () { return this.getIndex() > $scope.selectedIndex; },
shouldRender: function () { return !$scope.noDisconnect || this.isActive(); },
hasFocus: function () { return !ctrl.lastClick && ctrl.hasFocus && this.getIndex() === ctrl.focusIndex; },

@@ -668,2 +673,4 @@ id: $mdUtil.nextUid()

* @param {boolean=} md-no-pagination When enabled, pagination will remain off
* @param {boolean=} md-swipe-content When enabled, swipe gestures will be enabled for the content area to jump between tabs
* @param {boolean=} md-no-disconnect If your tab content has background tasks (ie. event listeners), you will want to include this to prevent the scope from being disconnected
*

@@ -702,3 +709,5 @@ * @usage

selectedIndex: '=?mdSelected',
stretchTabs: '@?mdStretchTabs'
stretchTabs: '@?mdStretchTabs',
swipeContent: '=?mdSwipeContent',
noDisconnect: '=?mdNoDisconnect'
},

@@ -786,8 +795,6 @@ template: function (element, attr) {

aria-labelledby="tab-item-{{tab.id}}"\
md-swipe-left="$mdTabsCtrl.incrementSelectedIndex(1)"\
md-swipe-right="$mdTabsCtrl.incrementSelectedIndex(-1)"\
md-swipe-left="swipeContent && $mdTabsCtrl.incrementSelectedIndex(1)"\
md-swipe-right="swipeContent && $mdTabsCtrl.incrementSelectedIndex(-1)"\
ng-if="$mdTabsCtrl.hasContent"\
ng-repeat="(index, tab) in $mdTabsCtrl.tabs" \
md-template="tab.template"\
md-scope="tab.parent"\
ng-repeat="(index, tab) in $mdTabsCtrl.tabs"\
md-connected-if="tab.isActive()"\

@@ -800,3 +807,8 @@ ng-class="{\

\'md-no-scroll\': dynamicHeight\
}"></md-tab-content>\
}">\
<div\
md-template="tab.template"\
md-scope="tab.parent"\
ng-if="tab.shouldRender()"></div>\
</md-tab-content>\
</md-tabs-content-wrapper>\

@@ -856,5 +868,7 @@ ';

function disconnect () {
if (ctrl.scope.noDisconnect) return;
$mdUtil.disconnectScope(compileScope);
}
function reconnect () {
if (ctrl.scope.noDisconnect) return;
$mdUtil.reconnectScope(compileScope);

@@ -861,0 +875,0 @@ }

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(e,t,n){"use strict";function a(){function e(e,n,a,s){if(s){var d=n.parent()[0].getElementsByTagName("md-tab"),i=Array.prototype.indexOf.call(d,n[0]),r=s.insertTab({scope:e,parent:e.$parent,index:i,element:n,template:n.find("md-tab-body").html(),label:n.find("md-tab-label").html()},i);e.select=e.select||t.noop,e.deselect=e.deselect||t.noop,e.$watch("active",function(e){e&&s.select(r.getIndex())}),e.$watch("disabled",function(){s.refreshIndex()}),e.$watch(function(){return Array.prototype.indexOf.call(d,n[0])},function(e){r.index=e,s.updateTabOrder()}),e.$on("$destroy",function(){s.removeTab(r)})}}return{require:"^?mdTabs",terminal:!0,template:function(e,t){function n(){function n(){return t.label}function a(){var t=e.find("md-tab-label");return t.length?t.remove().html():void 0}function s(){var t=e.html();return e.empty(),t}return n()||a()||s()}function a(){var n=e.find("md-tab-body"),a=n.length?n.html():t.label?e.html():"";return n.length?n.remove():t.label&&e.empty(),a}var s=n(),d=a();return"<md-tab-label>"+s+"</md-tab-label><md-tab-body>"+d+"</md-tab-body>"},scope:{active:"=?mdActive",disabled:"=?ngDisabled",select:"&?mdOnSelect",deselect:"&?mdOnDeselect"},link:e}}function s(){return{require:"^?mdTabs",link:function(e,t,n,a){a&&a.attachRipple(e,t)}}}function d(){return{terminal:!0}}function i(e){return{restrict:"A",compile:function(t,n){var a=e(n.mdTabScroll,null,!0);return function(e,t){t.on("mousewheel",function(t){e.$apply(function(){a(e,{$event:t})})})}}}}function r(e,n,a,s,d,i,r,c){function o(){e.$watch("selectedIndex",u),e.$watch("$mdTabsCtrl.focusIndex",b),e.$watch("$mdTabsCtrl.offsetLeft",f),e.$watch("$mdTabsCtrl.hasContent",m),t.element(a).on("resize",v),t.element(Y.paging).on("DOMSubtreeModified",K.updateInkBarStyles),s(M,0,!1),s(D),e.$on("$destroy",l)}function l(){t.element(a).off("resize",v),t.element(Y.paging).off("DOMSubtreeModified",K.updateInkBarStyles)}function m(e){n[e?"removeClass":"addClass"]("md-no-tab-content")}function f(n){var a=S()?"":"-"+n+"px";t.element(Y.paging).css("transform","translate3d("+a+", 0, 0)"),e.$broadcast("$mdTabsPaginationChanged")}function b(e,t){e!==t&&Y.tabs[e]&&(D(),O())}function u(t,n){t!==n&&(e.selectedIndex=B(t),K.lastSelectedIndex=n,K.updateInkBarStyles(),M(),e.$broadcast("$mdTabsChanged"),K.tabs[n]&&K.tabs[n].scope.deselect(),K.tabs[t]&&K.tabs[t].scope.select())}function p(){p.watcher||(p.watcher=e.$watch(function(){s(function(){p.watcher&&n.prop("offsetParent")&&(p.watcher(),p.watcher=null,v())},0,!1)}))}function h(t){switch(t.keyCode){case d.KEY_CODE.LEFT_ARROW:t.preventDefault(),W(-1,!0);break;case d.KEY_CODE.RIGHT_ARROW:t.preventDefault(),W(1,!0);break;case d.KEY_CODE.SPACE:case d.KEY_CODE.ENTER:t.preventDefault(),U||(e.selectedIndex=K.focusIndex)}K.lastClick=!1}function g(t){U||(K.focusIndex=e.selectedIndex=t),K.lastClick=!0,K.tabs[t].element.triggerHandler("click")}function x(e){P()&&(e.preventDefault(),K.offsetLeft=_(K.offsetLeft-e.wheelDelta))}function T(){var e,t,n=Y.canvas.clientWidth,a=n+K.offsetLeft;for(e=0;e<Y.tabs.length&&(t=Y.tabs[e],!(t.offsetLeft+t.offsetWidth>a));e++);K.offsetLeft=_(t.offsetLeft)}function $(){var e,t;for(e=0;e<Y.tabs.length&&(t=Y.tabs[e],!(t.offsetLeft+t.offsetWidth>=K.offsetLeft));e++);K.offsetLeft=_(t.offsetLeft+t.offsetWidth-Y.canvas.clientWidth)}function v(){e.$apply(function(){K.lastSelectedIndex=e.selectedIndex,K.offsetLeft=_(K.offsetLeft),s(K.updateInkBarStyles,0,!1)})}function I(t){var n=e.selectedIndex,a=K.tabs.splice(t.getIndex(),1)[0];F(),e.selectedIndex===n&&(a.scope.deselect(),K.tabs[e.selectedIndex]&&K.tabs[e.selectedIndex].scope.select()),s(function(){K.offsetLeft=_(K.offsetLeft)})}function C(n,a){var s={getIndex:function(){return K.tabs.indexOf(d)},isActive:function(){return this.getIndex()===e.selectedIndex},isLeft:function(){return this.getIndex()<e.selectedIndex},isRight:function(){return this.getIndex()>e.selectedIndex},hasFocus:function(){return!K.lastClick&&K.hasFocus&&this.getIndex()===K.focusIndex},id:r.nextUid()},d=t.extend(s,n);return t.isDefined(a)?K.tabs.splice(a,0,d):K.tabs.push(d),A(),N(),d}function w(){var e={};return e.wrapper=n[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=n[0].getElementsByTagName("md-tabs-content-wrapper")[0],e.contents=e.contentsWrapper.getElementsByTagName("md-tab-content"),e}function y(){return K.offsetLeft>0}function k(){var e=Y.tabs[Y.tabs.length-1];return e&&e.offsetLeft+e.offsetWidth>Y.canvas.clientWidth+K.offsetLeft}function L(){switch(e.stretchTabs){case"always":return!0;case"never":return!1;default:return!P()&&a.matchMedia("(max-width: 600px)").matches}}function S(){return e.centerTabs&&!P()}function P(){if(e.noPagination)return!1;var a=n.prop("clientWidth");return t.forEach(Y.tabs,function(e){a-=e.offsetWidth}),0>a}function B(e){var t,n,a=Math.max(K.tabs.length-e,e);for(t=0;a>=t;t++){if(n=K.tabs[e+t],n&&n.scope.disabled!==!0)return n.getIndex();if(n=K.tabs[e-t],n&&n.scope.disabled!==!0)return n.getIndex()}return e}function E(){var t=K.tabs[e.selectedIndex],n=K.tabs[K.focusIndex];K.tabs=K.tabs.sort(function(e,t){return e.index-t.index}),e.selectedIndex=K.tabs.indexOf(t),K.focusIndex=K.tabs.indexOf(n)}function W(t,n){var a,s=n?K.focusIndex:e.selectedIndex;for(a=s+t;K.tabs[a]&&K.tabs[a].scope.disabled;a+=t);K.tabs[a]&&(n?K.focusIndex=a:e.selectedIndex=a)}function O(){Y.dummies[K.focusIndex].focus()}function D(){if(!S()){var e=Y.tabs[K.focusIndex],t=e.offsetLeft,n=e.offsetWidth+t;K.offsetLeft=Math.max(K.offsetLeft,_(n-Y.canvas.clientWidth)),K.offsetLeft=Math.min(K.offsetLeft,_(t))}}function A(){q.forEach(function(e){s(e)}),q=[]}function N(){var e=!1;t.forEach(K.tabs,function(t){t.template&&(e=!0)}),K.hasContent=e}function F(){e.selectedIndex=B(e.selectedIndex),K.focusIndex=B(K.focusIndex)}function M(){if(!e.dynamicHeight)return n.css("height","");if(!K.tabs.length)return q.push(M);var t=Y.contents[e.selectedIndex],a=t?t.offsetHeight:0,s=Y.wrapper.offsetHeight,d=a+s,i=n.prop("clientHeight");i!==d&&(U=!0,c.animate(n,{height:i+"px"},{height:d+"px"}).then(function(){n.css("height",""),U=!1}))}function R(){if(Y.tabs[e.selectedIndex]){if(!K.tabs.length)return q.push(K.updateInkBarStyles);if(!n.prop("offsetParent"))return p();var a=e.selectedIndex,s=Y.paging.offsetWidth,d=Y.tabs[a],i=d.offsetLeft,r=s-i-d.offsetWidth;H(),t.element(Y.inkBar).css({left:i+"px",right:r+"px"})}}function H(){var n=e.selectedIndex,a=K.lastSelectedIndex,s=t.element(Y.inkBar);s.removeClass("md-left md-right"),t.isNumber(a)&&(a>n?s.addClass("md-left"):n>a&&s.addClass("md-right"))}function _(e){if(!Y.tabs.length||!P())return 0;var t=Y.tabs[Y.tabs.length-1],n=t.offsetLeft+t.offsetWidth;return e=Math.max(0,e),e=Math.min(n-Y.canvas.clientWidth,e)}function j(e,n){var a={colorElement:t.element(Y.inkBar)};i.attach(e,n,a)}var K=this,U=!1,Y=w(),q=[];K.scope=e,K.parent=e.$parent,K.tabs=[],K.lastSelectedIndex=null,K.focusIndex=e.selectedIndex||0,K.offsetLeft=0,K.hasContent=!1,K.hasFocus=!1,K.lastClick=!0,K.redirectFocus=O,K.attachRipple=j,K.shouldStretchTabs=L,K.shouldPaginate=P,K.shouldCenterTabs=S,K.insertTab=C,K.removeTab=I,K.select=g,K.scroll=x,K.nextPage=T,K.previousPage=$,K.keydown=h,K.canPageForward=k,K.canPageBack=y,K.refreshIndex=F,K.incrementSelectedIndex=W,K.updateInkBarStyles=r.debounce(R,100),K.updateTabOrder=r.debounce(E,100),o()}function c(e,n,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" md-connected-if="tab.isActive()" 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(s,d,i){function r(e){var t=d.find("md-tab-data");t.html(e),a(t.contents())(s.$parent)}r(i.$mdTabsTemplate),delete i.$mdTabsTemplate,n.initOptionalProperties(s,i),i.$observe("mdNoBar",function(e){s.noInkBar=t.isDefined(e)}),s.selectedIndex=t.isNumber(s.selectedIndex)?s.selectedIndex:0,e(d)}}}function o(e,t,n){function a(a,s,d,i){function r(){a.$watch("connected",function(e){e===!1?c():o()}),a.$on("$destroy",o)}function c(){t.disconnectScope(l)}function o(){t.reconnectScope(l)}if(i){var l=a.compileScope.$new();return s.html(a.template),e(s.contents())(l),n(r)}}return{restrict:"A",link:a,scope:{template:"=mdTemplate",compileScope:"=mdScope",connected:"=?mdConnectedIf"},require:"^?mdTabs"}}t.module("material.components.tabs",["material.core","material.components.icon"]),t.module("material.components.tabs").directive("mdTab",a),t.module("material.components.tabs").directive("mdTabItem",s),t.module("material.components.tabs").directive("mdTabLabel",d),t.module("material.components.tabs").directive("mdTabScroll",i),i.$inject=["$parse"],t.module("material.components.tabs").controller("MdTabsController",r),r.$inject=["$scope","$element","$window","$timeout","$mdConstant","$mdTabInkRipple","$mdUtil","$animate"],t.module("material.components.tabs").directive("mdTabs",c),c.$inject=["$mdTheming","$mdUtil","$compile"],t.module("material.components.tabs").directive("mdTemplate",o),o.$inject=["$compile","$mdUtil","$timeout"]}(window,window.angular);
!function(e,t,n){"use strict";function a(){function e(e,n,a,s){if(s){var d=n.parent()[0].getElementsByTagName("md-tab"),i=Array.prototype.indexOf.call(d,n[0]),c=n.find("md-tab-body").remove(),o=n.find("md-tab-label").remove(),r=s.insertTab({scope:e,parent:e.$parent,index:i,element:n,template:c.html(),label:o.html()},i);e.select=e.select||t.noop,e.deselect=e.deselect||t.noop,e.$watch("active",function(e){e&&s.select(r.getIndex())}),e.$watch("disabled",function(){s.refreshIndex()}),e.$watch(function(){return Array.prototype.indexOf.call(d,n[0])},function(e){r.index=e,s.updateTabOrder()}),e.$on("$destroy",function(){s.removeTab(r)})}}return{require:"^?mdTabs",terminal:!0,template:function(e,t){function n(){function n(){return t.label}function a(){var t=e.find("md-tab-label");return t.length?t.remove().html():void 0}function s(){var t=e.html();return e.empty(),t}return a()||n()||s()}function a(){var n=e.find("md-tab-body"),a=n.length?n.html():t.label?e.html():"";return n.length?n.remove():t.label&&e.empty(),a}var s=n(),d=a();return"<md-tab-label>"+s+"</md-tab-label><md-tab-body>"+d+"</md-tab-body>"},scope:{active:"=?mdActive",disabled:"=?ngDisabled",select:"&?mdOnSelect",deselect:"&?mdOnDeselect"},link:e}}function s(){return{require:"^?mdTabs",link:function(e,t,n,a){a&&a.attachRipple(e,t)}}}function d(){return{terminal:!0}}function i(e){return{restrict:"A",compile:function(t,n){var a=e(n.mdTabScroll,null,!0);return function(e,t){t.on("mousewheel",function(t){e.$apply(function(){a(e,{$event:t})})})}}}}function c(e,n,a,s,d,i,c,o){function r(){e.$watch("selectedIndex",u),e.$watch("$mdTabsCtrl.focusIndex",b),e.$watch("$mdTabsCtrl.offsetLeft",f),e.$watch("$mdTabsCtrl.hasContent",m),t.element(a).on("resize",$),t.element(Y.paging).on("DOMSubtreeModified",K.updateInkBarStyles),s(F,0,!1),s(O),e.$on("$destroy",l)}function l(){z=!0,t.element(a).off("resize",$),t.element(Y.paging).off("DOMSubtreeModified",K.updateInkBarStyles)}function m(e){n[e?"removeClass":"addClass"]("md-no-tab-content")}function f(n){var a=S()?"":"-"+n+"px";t.element(Y.paging).css("transform","translate3d("+a+", 0, 0)"),e.$broadcast("$mdTabsPaginationChanged")}function b(e,t){e!==t&&Y.tabs[e]&&(O(),W())}function u(t,n){t!==n&&(e.selectedIndex=B(t),K.lastSelectedIndex=n,K.updateInkBarStyles(),F(),e.$broadcast("$mdTabsChanged"),K.tabs[n]&&K.tabs[n].scope.deselect(),K.tabs[t]&&K.tabs[t].scope.select())}function p(){p.watcher||(p.watcher=e.$watch(function(){s(function(){p.watcher&&n.prop("offsetParent")&&(p.watcher(),p.watcher=null,$())},0,!1)}))}function h(t){switch(t.keyCode){case d.KEY_CODE.LEFT_ARROW:t.preventDefault(),D(-1,!0);break;case d.KEY_CODE.RIGHT_ARROW:t.preventDefault(),D(1,!0);break;case d.KEY_CODE.SPACE:case d.KEY_CODE.ENTER:t.preventDefault(),U||(e.selectedIndex=K.focusIndex)}K.lastClick=!1}function g(t){U||(K.focusIndex=e.selectedIndex=t),K.lastClick=!0,K.tabs[t].element.triggerHandler("click")}function x(e){P()&&(e.preventDefault(),K.offsetLeft=_(K.offsetLeft-e.wheelDelta))}function v(){var e,t,n=Y.canvas.clientWidth,a=n+K.offsetLeft;for(e=0;e<Y.tabs.length&&(t=Y.tabs[e],!(t.offsetLeft+t.offsetWidth>a));e++);K.offsetLeft=_(t.offsetLeft)}function T(){var e,t;for(e=0;e<Y.tabs.length&&(t=Y.tabs[e],!(t.offsetLeft+t.offsetWidth>=K.offsetLeft));e++);K.offsetLeft=_(t.offsetLeft+t.offsetWidth-Y.canvas.clientWidth)}function $(){e.$apply(function(){K.lastSelectedIndex=e.selectedIndex,K.offsetLeft=_(K.offsetLeft),s(K.updateInkBarStyles,0,!1)})}function I(t){var n=e.selectedIndex,a=K.tabs.splice(t.getIndex(),1)[0];R(),e.selectedIndex!==n||z||(a.scope.deselect(),K.tabs[e.selectedIndex]&&K.tabs[e.selectedIndex].scope.select()),s(function(){K.offsetLeft=_(K.offsetLeft)})}function C(n,a){var s={getIndex:function(){return K.tabs.indexOf(d)},isActive:function(){return this.getIndex()===e.selectedIndex},isLeft:function(){return this.getIndex()<e.selectedIndex},isRight:function(){return this.getIndex()>e.selectedIndex},shouldRender:function(){return!e.noDisconnect||this.isActive()},hasFocus:function(){return!K.lastClick&&K.hasFocus&&this.getIndex()===K.focusIndex},id:c.nextUid()},d=t.extend(s,n);return t.isDefined(a)?K.tabs.splice(a,0,d):K.tabs.push(d),A(),N(),d}function w(){var e={};return e.wrapper=n[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=n[0].getElementsByTagName("md-tabs-content-wrapper")[0],e.contents=e.contentsWrapper.getElementsByTagName("md-tab-content"),e}function y(){return K.offsetLeft>0}function k(){var e=Y.tabs[Y.tabs.length-1];return e&&e.offsetLeft+e.offsetWidth>Y.canvas.clientWidth+K.offsetLeft}function L(){switch(e.stretchTabs){case"always":return!0;case"never":return!1;default:return!P()&&a.matchMedia("(max-width: 600px)").matches}}function S(){return e.centerTabs&&!P()}function P(){if(e.noPagination)return!1;var a=n.prop("clientWidth");return t.forEach(Y.tabs,function(e){a-=e.offsetWidth}),0>a}function B(e){var t,n,a=Math.max(K.tabs.length-e,e);for(t=0;a>=t;t++){if(n=K.tabs[e+t],n&&n.scope.disabled!==!0)return n.getIndex();if(n=K.tabs[e-t],n&&n.scope.disabled!==!0)return n.getIndex()}return e}function E(){var t=K.tabs[e.selectedIndex],n=K.tabs[K.focusIndex];K.tabs=K.tabs.sort(function(e,t){return e.index-t.index}),e.selectedIndex=K.tabs.indexOf(t),K.focusIndex=K.tabs.indexOf(n)}function D(t,n){var a,s=n?K.focusIndex:e.selectedIndex;for(a=s+t;K.tabs[a]&&K.tabs[a].scope.disabled;a+=t);K.tabs[a]&&(n?K.focusIndex=a:e.selectedIndex=a)}function W(){Y.dummies[K.focusIndex].focus()}function O(){if(!S()){var e=Y.tabs[K.focusIndex],t=e.offsetLeft,n=e.offsetWidth+t;K.offsetLeft=Math.max(K.offsetLeft,_(n-Y.canvas.clientWidth)),K.offsetLeft=Math.min(K.offsetLeft,_(t))}}function A(){q.forEach(function(e){s(e)}),q=[]}function N(){var e=!1;t.forEach(K.tabs,function(t){t.template&&(e=!0)}),K.hasContent=e}function R(){e.selectedIndex=B(e.selectedIndex),K.focusIndex=B(K.focusIndex)}function F(){if(!e.dynamicHeight)return n.css("height","");if(!K.tabs.length)return q.push(F);var t=Y.contents[e.selectedIndex],a=t?t.offsetHeight:0,s=Y.wrapper.offsetHeight,d=a+s,i=n.prop("clientHeight");i!==d&&(U=!0,o.animate(n,{height:i+"px"},{height:d+"px"}).then(function(){n.css("height",""),U=!1}))}function M(){if(Y.tabs[e.selectedIndex]){if(!K.tabs.length)return q.push(K.updateInkBarStyles);if(!n.prop("offsetParent"))return p();var a=e.selectedIndex,s=Y.paging.offsetWidth,d=Y.tabs[a],i=d.offsetLeft,c=s-i-d.offsetWidth;H(),t.element(Y.inkBar).css({left:i+"px",right:c+"px"})}}function H(){var n=e.selectedIndex,a=K.lastSelectedIndex,s=t.element(Y.inkBar);s.removeClass("md-left md-right"),t.isNumber(a)&&(a>n?s.addClass("md-left"):n>a&&s.addClass("md-right"))}function _(e){if(!Y.tabs.length||!P())return 0;var t=Y.tabs[Y.tabs.length-1],n=t.offsetLeft+t.offsetWidth;return e=Math.max(0,e),e=Math.min(n-Y.canvas.clientWidth,e)}function j(e,n){var a={colorElement:t.element(Y.inkBar)};i.attach(e,n,a)}var K=this,U=!1,Y=w(),q=[],z=!1;K.scope=e,K.parent=e.$parent,K.tabs=[],K.lastSelectedIndex=null,K.focusIndex=e.selectedIndex||0,K.offsetLeft=0,K.hasContent=!1,K.hasFocus=!1,K.lastClick=!0,K.redirectFocus=W,K.attachRipple=j,K.shouldStretchTabs=L,K.shouldPaginate=P,K.shouldCenterTabs=S,K.insertTab=C,K.removeTab=I,K.select=g,K.scroll=x,K.nextPage=v,K.previousPage=T,K.keydown=h,K.canPageForward=k,K.canPageBack=y,K.refreshIndex=R,K.incrementSelectedIndex=D,K.updateInkBarStyles=c.debounce(M,100),K.updateTabOrder=c.debounce(E,100),r()}function o(e,n,a){return{scope:{noPagination:"=?mdNoPagination",dynamicHeight:"=?mdDynamicHeight",centerTabs:"=?mdCenterTabs",selectedIndex:"=?mdSelected",stretchTabs:"@?mdStretchTabs",swipeContent:"=?mdSwipeContent",noDisconnect:"=?mdNoDisconnect"},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="swipeContent && $mdTabsCtrl.incrementSelectedIndex(1)" md-swipe-right="swipeContent && $mdTabsCtrl.incrementSelectedIndex(-1)" ng-if="$mdTabsCtrl.hasContent" ng-repeat="(index, tab) in $mdTabsCtrl.tabs" md-connected-if="tab.isActive()" ng-class="{ \'md-no-transition\': $mdTabsCtrl.lastSelectedIndex == null, \'md-active\': tab.isActive(), \'md-left\': tab.isLeft(), \'md-right\': tab.isRight(), \'md-no-scroll\': dynamicHeight }"> <div md-template="tab.template" md-scope="tab.parent" ng-if="tab.shouldRender()"></div> </md-tab-content> </md-tabs-content-wrapper> '},controller:"MdTabsController",controllerAs:"$mdTabsCtrl",link:function(s,d,i){function c(e){var t=d.find("md-tab-data");t.html(e),a(t.contents())(s.$parent)}c(i.$mdTabsTemplate),delete i.$mdTabsTemplate,n.initOptionalProperties(s,i),i.$observe("mdNoBar",function(e){s.noInkBar=t.isDefined(e)}),s.selectedIndex=t.isNumber(s.selectedIndex)?s.selectedIndex:0,e(d)}}}function r(e,t,n){function a(a,s,d,i){function c(){a.$watch("connected",function(e){e===!1?o():r()}),a.$on("$destroy",r)}function o(){i.scope.noDisconnect||t.disconnectScope(l)}function r(){i.scope.noDisconnect||t.reconnectScope(l)}if(i){var l=a.compileScope.$new();return s.html(a.template),e(s.contents())(l),n(c)}}return{restrict:"A",link:a,scope:{template:"=mdTemplate",compileScope:"=mdScope",connected:"=?mdConnectedIf"},require:"^?mdTabs"}}t.module("material.components.tabs",["material.core","material.components.icon"]),t.module("material.components.tabs").directive("mdTab",a),t.module("material.components.tabs").directive("mdTabItem",s),t.module("material.components.tabs").directive("mdTabLabel",d),t.module("material.components.tabs").directive("mdTabScroll",i),i.$inject=["$parse"],t.module("material.components.tabs").controller("MdTabsController",c),c.$inject=["$scope","$element","$window","$timeout","$mdConstant","$mdTabInkRipple","$mdUtil","$animate"],t.module("material.components.tabs").directive("mdTabs",o),o.$inject=["$mdTheming","$mdUtil","$compile"],t.module("material.components.tabs").directive("mdTemplate",r),r.$inject=["$compile","$mdUtil","$timeout"]}(window,window.angular);
{
"name": "angular-material-toast",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7",
"angular-material-button": "0.9.7"
"angular-material-core": "0.9.8",
"angular-material-button": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(t,e,n){"use strict";function o(){return{restrict:"E"}}function i(t){function e(t,e,o,i){function a(a,s,m){return s=i.extractElementByName(s,"md-toast"),n=m.content,s.addClass(m.position.split(" ").map(function(t){return"md-"+t}).join(" ")),m.parent.addClass(r(m.position)),m.onSwipe=function(e,n){s.addClass("md-"+e.type.replace("$md.","")),t(o.cancel)},s.on("$md.swipeleft $md.swiperight",m.onSwipe),e.enter(s,m.parent)}function s(t,n,o){return n.off("$md.swipeleft $md.swiperight",o.onSwipe),o.parent.removeClass(r(o.position)),e.leave(n)}function r(t){return"md-toast-open-"+(t.indexOf("top")>-1?"top":"bottom")}return{onShow:a,onRemove:s,position:"bottom left",themable:!0,hideDelay:3e3}}var n,o=t("$mdToast").setDefaults({methods:["position","hideDelay","capsule"],options:e}).addPreset("simple",{argOption:"content",methods:["content","action","highlightAction","theme","parent"],options:["$mdToast","$mdTheming",function(t,e){var o={template:['<md-toast md-theme="{{ toast.theme }}" ng-class="{\'md-capsule\': toast.capsule}">',"<span flex>{{ 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>","</md-toast>"].join(""),controller:["$scope",function(e){var o=this;e.$watch(function(){return n},function(){o.content=n}),this.resolve=function(){t.hide()}}],theme:e.defaultTheme(),controllerAs:"toast",bindToController:!0};return o}]}).addMethod("updateContent",function(t){n=t});return e.$inject=["$timeout","$animate","$mdToast","$mdUtil"],o}e.module("material.components.toast",["material.core","material.components.button"]).directive("mdToast",o).provider("$mdToast",i),i.$inject=["$$interimElementProvider"]}(window,window.angular);
{
"name": "angular-material-toolbar",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7",
"angular-material-content": "0.9.7"
"angular-material-core": "0.9.8",
"angular-material-content": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(t,n,o){"use strict";function e(t,o,e,r,a,i){return{restrict:"E",controller:n.noop,link:function(s,c,m){function l(){function n(n,o){c.parent()[0]===o.parent()[0]&&(f&&f.off("scroll",S),o.on("scroll",S),o.attr("scroll-shrink","true"),f=o,t(r))}function r(){d=c.prop("offsetHeight");var t=-d*h+"px";f.css("margin-top",t),f.css("margin-bottom",t),l()}function l(t){var n=t?t.target.scrollTop:p;$(),u=Math.min(d/h,Math.max(0,u+n-p)),c.css(o.CSS.TRANSFORM,"translate3d(0,"+-u*h+"px,0)"),f.css(o.CSS.TRANSFORM,"translate3d(0,"+(d-u)*h+"px,0)"),p=n,c.hasClass("md-whiteframe-z1")?u||i(function(){a.removeClass(c,"md-whiteframe-z1")}):u&&i(function(){a.addClass(c,"md-whiteframe-z1")})}var d,f,u=0,p=0,h=m.mdShrinkSpeedFactor||.5,S=t.throttle(l),$=e.debounce(r,5e3);s.$on("$mdContentLoaded",n)}r(c),n.isDefined(m.mdScrollShrink)&&l()}}}n.module("material.components.toolbar",["material.core","material.components.content"]).directive("mdToolbar",e),e.$inject=["$$rAF","$mdConstant","$mdUtil","$mdTheming","$animate","$timeout"]}(window,window.angular);
{
"name": "angular-material-tooltip",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {
"angular-material-core": "0.9.7"
"angular-material-core": "0.9.8"
}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -46,3 +46,4 @@ (function( window, angular, undefined ){

*/
function MdTooltipDirective($timeout, $window, $$rAF, $document, $mdUtil, $mdTheming, $rootElement, $animate, $q) {
function MdTooltipDirective($timeout, $window, $$rAF, $document, $mdUtil, $mdTheming, $rootElement,
$animate, $q) {

@@ -124,11 +125,10 @@ var TOOLTIP_SHOW_DELAY = 300;

function getNearestContentElement () {
var current = element.parent()[0];
// Look for the nearest parent md-content, stopping at the rootElement.
while (current && current !== $rootElement[0] && current !== document.body) {
if (current.tagName && current.tagName.toLowerCase() == 'md-content') break;
current = current.parentNode;
}
return current;
}
function getNearestContentElement () {
var current = element.parent()[0];
// Look for the nearest parent md-content, stopping at the rootElement.
while (current && current !== $rootElement[0] && current !== document.body) {
current = current.parentNode;
}
return current;
}

@@ -135,0 +135,0 @@ function hasComputedStyleValue(key, value) {

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(t,e,o){"use strict";function n(t,o,n,i,l,a,r,d,u){function h(h,s,p){function m(){v(),b(),C(),w(),g()}function v(){e.isDefined(p.mdDelay)||(h.delay=c)}function w(){h.$on("$destroy",function(){h.visible=!1,s.remove(),e.element(o).off("resize",H)}),h.$watch("visible",function(t){t?q():E()})}function g(){N.attr("aria-label")||N.text().trim()||N.attr("aria-label",s.text().trim())}function b(){s.detach(),s.attr("role","tooltip")}function y(){for(var t=s.parent();t&&"none"==o.getComputedStyle(t[0])["pointer-events"];)t=t.parent();return t}function $(){for(var t=s.parent()[0];t&&t!==r[0]&&t!==document.body&&(!t.tagName||"md-content"!=t.tagName.toLowerCase());)t=t.parentNode;return t}function M(t,n){var i=o.getComputedStyle(s[0]);return e.isDefined(i[t])&&i[t]==n}function C(){var t=!1,n=function(){M("pointer-events","none")||x(!0)},l=function(){var e=h.hasOwnProperty("autohide")?h.autohide:p.hasOwnProperty("mdAutohide");(e||t||i[0].activeElement!==N[0])&&x(!1),t=!1};N.on("mousedown",function(){t=!0}),N.on("focus mouseenter touchstart",n),N.on("blur mouseleave touchend touchcancel",l),e.element(o).on("resize",H)}function x(e){x.value=!!e,x.queued||(e?(x.queued=!0,t(function(){h.visible=x.value,x.queued=!1},h.delay)):t(function(){h.visible=!1}))}function q(){return B.append(s),M("display","none")?(h.visible=!1,void s.detach()):(D(),void e.forEach([s,k,A],function(t){d.addClass(t,"md-show")}))}function E(){u.all([d.removeClass(A,"md-show"),d.removeClass(k,"md-show"),d.removeClass(s,"md-show")]).then(function(){h.visible||s.detach()})}function D(){function t(){var t="left"===P||"right"===P?2*Math.sqrt(Math.pow(n.width,2)+Math.pow(n.height/2,2)):2*Math.sqrt(Math.pow(n.width/2,2)+Math.pow(n.height,2)),e="left"===P?{left:100,top:50}:"right"===P?{left:0,top:50}:"top"===P?{left:50,top:100}:{left:50,top:0};k.css({width:t+"px",height:t+"px",left:e.left+"%",top:e.top+"%"})}function e(t){var e={left:t.left,top:t.top};return e.left=Math.min(e.left,B.prop("scrollWidth")-n.width-f),e.left=Math.max(e.left,f),e.top=Math.min(e.top,B.prop("scrollHeight")-n.height-f),e.top=Math.max(e.top,f),e}function o(t){return"left"===t?{left:i.left-n.width-f,top:i.top+i.height/2-n.height/2}:"right"===t?{left:i.left+i.width+f,top:i.top+i.height/2-n.height/2}:"top"===t?{left:i.left+i.width/2-n.width/2,top:i.top-n.height-f}:{left:i.left+i.width/2-n.width/2,top:i.top+i.height+f}}var n=l.offsetRect(s,B),i=l.offsetRect(N,B),a=o(P);P?a=e(a):a.top>s.prop("offsetParent").scrollHeight-n.height-f&&(a=e(o("top"))),s.css({top:a.top+"px",left:a.left+"px"}),t()}a(s);var N=y(),k=e.element(s[0].getElementsByClassName("md-background")[0]),A=e.element(s[0].getElementsByClassName("md-content")[0]),P=p.mdDirection,z=$(),B=e.element(z||document.body),H=n.throttle(function(){h.visible&&D()});return m()}var c=300,f=8;return{restrict:"E",transclude:!0,priority:210,template:' <div class="md-background"></div> <div class="md-content" ng-transclude></div>',scope:{visible:"=?mdVisible",delay:"=?mdDelay",autohide:"=?mdAutohide"},link:h}}e.module("material.components.tooltip",["material.core"]).directive("mdTooltip",n),n.$inject=["$timeout","$window","$$rAF","$document","$mdUtil","$mdTheming","$rootElement","$animate","$q"]}(window,window.angular);
!function(t,e,o){"use strict";function n(t,o,n,i,l,r,a,d,u){function h(h,s,p){function m(){v(),b(),x(),w(),g()}function v(){e.isDefined(p.mdDelay)||(h.delay=f)}function w(){h.$on("$destroy",function(){h.visible=!1,s.remove(),e.element(o).off("resize",H)}),h.$watch("visible",function(t){t?q():E()})}function g(){k.attr("aria-label")||k.text().trim()||k.attr("aria-label",s.text().trim())}function b(){s.detach(),s.attr("role","tooltip")}function y(){for(var t=s.parent();t&&"none"==o.getComputedStyle(t[0])["pointer-events"];)t=t.parent();return t}function $(){for(var t=s.parent()[0];t&&t!==a[0]&&t!==document.body;)t=t.parentNode;return t}function M(t,n){var i=o.getComputedStyle(s[0]);return e.isDefined(i[t])&&i[t]==n}function x(){var t=!1,n=function(){M("pointer-events","none")||C(!0)},l=function(){var e=h.hasOwnProperty("autohide")?h.autohide:p.hasOwnProperty("mdAutohide");(e||t||i[0].activeElement!==k[0])&&C(!1),t=!1};k.on("mousedown",function(){t=!0}),k.on("focus mouseenter touchstart",n),k.on("blur mouseleave touchend touchcancel",l),e.element(o).on("resize",H)}function C(e){C.value=!!e,C.queued||(e?(C.queued=!0,t(function(){h.visible=C.value,C.queued=!1},h.delay)):t(function(){h.visible=!1}))}function q(){return B.append(s),M("display","none")?(h.visible=!1,void s.detach()):(D(),void e.forEach([s,A,N],function(t){d.addClass(t,"md-show")}))}function E(){u.all([d.removeClass(N,"md-show"),d.removeClass(A,"md-show"),d.removeClass(s,"md-show")]).then(function(){h.visible||s.detach()})}function D(){function t(){var t="left"===P||"right"===P?2*Math.sqrt(Math.pow(n.width,2)+Math.pow(n.height/2,2)):2*Math.sqrt(Math.pow(n.width/2,2)+Math.pow(n.height,2)),e="left"===P?{left:100,top:50}:"right"===P?{left:0,top:50}:"top"===P?{left:50,top:100}:{left:50,top:0};A.css({width:t+"px",height:t+"px",left:e.left+"%",top:e.top+"%"})}function e(t){var e={left:t.left,top:t.top};return e.left=Math.min(e.left,B.prop("scrollWidth")-n.width-c),e.left=Math.max(e.left,c),e.top=Math.min(e.top,B.prop("scrollHeight")-n.height-c),e.top=Math.max(e.top,c),e}function o(t){return"left"===t?{left:i.left-n.width-c,top:i.top+i.height/2-n.height/2}:"right"===t?{left:i.left+i.width+c,top:i.top+i.height/2-n.height/2}:"top"===t?{left:i.left+i.width/2-n.width/2,top:i.top-n.height-c}:{left:i.left+i.width/2-n.width/2,top:i.top+i.height+c}}var n=l.offsetRect(s,B),i=l.offsetRect(k,B),r=o(P);P?r=e(r):r.top>s.prop("offsetParent").scrollHeight-n.height-c&&(r=e(o("top"))),s.css({top:r.top+"px",left:r.left+"px"}),t()}r(s);var k=y(),A=e.element(s[0].getElementsByClassName("md-background")[0]),N=e.element(s[0].getElementsByClassName("md-content")[0]),P=p.mdDirection,z=$(),B=e.element(z||document.body),H=n.throttle(function(){h.visible&&D()});return m()}var f=300,c=8;return{restrict:"E",transclude:!0,priority:210,template:' <div class="md-background"></div> <div class="md-content" ng-transclude></div>',scope:{visible:"=?mdVisible",delay:"=?mdDelay",autohide:"=?mdAutohide"},link:h}}e.module("material.components.tooltip",["material.core"]).directive("mdTooltip",n),n.$inject=["$timeout","$window","$$rAF","$document","$mdUtil","$mdTheming","$rootElement","$animate","$q"]}(window,window.angular);
{
"name": "angular-material-whiteframe",
"version": "0.9.7",
"version": "0.9.8",
"dependencies": {}
}

@@ -5,3 +5,3 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/

@@ -8,0 +8,0 @@ (function( window, angular, undefined ){

@@ -5,4 +5,4 @@ /*!

* @license MIT
* v0.9.7
* v0.9.8
*/
!function(n,e,i){"use strict";e.module("material.components.whiteframe",[])}(window,window.angular);
{
"name": "angular-material",
"version": "0.9.7",
"version": "0.9.8",
"main": "index",

@@ -5,0 +5,0 @@ "format": "cjs",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc